Главная » Просмотр файлов » Программирование баз данных MS SQL Server

Программирование баз данных MS SQL Server (1084479), страница 93

Файл №1084479 Программирование баз данных MS SQL Server (Программирование баз данных MS SQL Server) 93 страницаПрограммирование баз данных MS SQL Server (1084479) страница 932018-01-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 93)

А в некоторых обстоятельствах лучше всего ограничиться созданием индексов с учетом требований поддержки транзакций, наиболее важных для прикладной системы, в которых используется рассматриваемая таблица. При этом необходимо учитывать, имеется ли в коде транзакции конструкция ымеее, какой столбец (столбцы) в ней используется, и требуется ли сортировка. Определение условий применения кластеризованного индекса Следует учитывать, что на таблице может быть задан только один кластеризованный индекс, поэтому выбирать его нужно очень тщательно. По умолчанию во время создания кластеризованного индекса создается также первичный ключ.

Чаще всего такое сочетание определений кластеризованного индекса и первичного ключа является наиболее приемлемым, но так бывает не всегда (а в некоторых случаях реализация такого решения может привести к заметному снижению производительности). Если в подобных ситуациях не будут проведены определенные действия, то окажется, что кластеризованный индекс больше нельзя применить для каких-либо других целей. В этом случае лучше всего отказаться от использования решения, предусмотренного по умолчанию.

Иными словами, следует исходить из того, какой первичный ключ является наиболее приемлемым, и оценить, действительно ли он должен быть создан на основе кластеризованного индекса. Если будет обнаружено, что должен быть действительно принят другой подход, иначе говоря, если будет определено, что первичный ключ не должен быть задан на кластеризованной таблице, достаточно ввести ключевое слово МОМСЬЕЯТЕЕЕ0 при создании таблицы, например, следующим образом; СВЕДХЕ тдВЬЕ Мутаь1ехеуххаяр1е ( СоХпяп2 РпСХПЕМтттХ РЕХмдех кех момсьзятевеп, Со1птп2 Рпп ) После создания индекса единственный способ внести в него изменения состоит в том, чтобы удалить его и снова сформировать, поэтому необходимо стремиться к тому, чтобы можно бьио с самого начала правильно задать используемый индекс.

Следует учитывать, что после внесения изменений в столбец (столбцы), на котором определен кластеризованный индекс, в СУБД Я~(. Бегхег может потребоваться выполнение полной пересортировки всей таблицы (напомним, что при использовании кластеризованного индекса порядок сортировки строк таблицы н расположения строк кластеризованного индекса являются одинаковыми). Итак, если предположить, что кластеризованный индекс задан на таблице, которая состоит из строк длиной 5000 символов и включает в себя миллион строк, то становится очевидно, что иногда объем данных, требующих переупорядочения, становится колоссальным.

В связи с этим необходимо найти ответ на несколько приведенных ниже вопросов. Структуры памяти и индексные структуры за. Яегчег 367 11 Много ли времени потребуется для переупорядочения данных в таблице? Для выполнения этой операции может потребоваться много времени, но удобный способ оценки затрат времени на выполнение указанной операции фактически отсутствует. 0 Имеется ли достаточный объем свободного пространства? Следует учитывать, что для переупорядочения таблицы с кластеризованным индексом в среднем требуется дополнительный объем, превышающий в 1,2 раза объем пространства, которое в настоящее время занимает таблица (при этом учитывается необходимость распределения рабочего пространства и нового индекса). Поэтому, если обрабатывается очень большая таблица, то может потребоваться весьма существенный объем дополнительного пространства, поэтому нужно будет подготовить место для его распределения.

Между прочим, все названные операции осуществляются в самой базе данных, поэтому возможность переупорядочения любой кластеризованной таблицы определяется тем, какие значения опций максимального размера и роста заданы для базы данных. 0 Следует ли использовать опцию ЯОВТ 1Н ТЕМРРВ? Если предусмотрено размещение базы данных сежрсй> на физическом жестком диске, отличном от того, где находится основная база данных, и на этом жестком диске имеется достаточный объем пространства, то ответ на этот вопрос, по-видимому, должен быть положительным. Преимущества кластеризованны|к индексов Кластеризованные индексы целесообразно задавать на таких таблицах, в которых рассматриваемый столбец (столбцы) часто применяется в таких запросах, которые охватывают целый ряд строк.

Отличительной особенностью подобных запросов является то, что в них используются операции ВЕТХЕЕВ или операции сравнения < и >. Характерными примерами запросов, в которых осуществляется доступ к целому ряду строк, поэтому для их выполнения хорошо подходят кластеризованные индексы, являются такие запросы, в которых применяются конструкции ОВООР ВХ и агрегирующие функции МАХ, м1н и ОООНТ. Кластеризация способствует успешному выполнению этих запросов, поскольку обеспечивается возможность начать поиск с определенной строки в составе хранимых данных, затем продолжать чтение до тех пор, пока остаются в силе условия, по которым должна быть выполнена выборка данных, а после этого прекратить обработку данных. Такая организация доступа к данным является чрезвычайно эффективной.

Кроме того, кластеризованные индексы обеспечивают исключительно высокую производительность, если данные должны быть получены в отсортированном виде с помощью конструкции ОВОЕВ ВХ, в которой используется кластеризованный ключ. Недостатки кластеризованных индексов Создание кластеризованного индекса на каком-то определенном столбце (столбцах) может стать нецелесообразным по двум описанным ниже причинам.

Основная причина вполне очевидна — наличие лучшего места для его использования. Необходимо еще раз отметить, что не следует задавать кластеризованный индекс на том или ином столбце лишь потому, что такое решение на первый взгляд кажется целесообразным (практика показывает, что чаще всего без раздумий принимают решение о 368 Глава 9 создании кластеризованного индекса на столбце первичного ключа). Следует вначале убедиться в том, что действительно выбран наиболее подходящий столбец. Но, по-видимому, гораздо более серьезной причиной отказа от использования кластеризованных индексов является перспектива того, что в таблице будет применяться большое количество таких операций вставки, в которых строки не заданы последовательно.

Напомним, что при этом повышается вероятность возникновения разбиений страниц, а выполнение таких операций связано со значительными затратами времени. Рассмотрим описанную ниже ситуацию. Предположим, что ведется разработка системы бухгалтерского учета и принято решение использовать номер транзакции (термин тВаязакиия в данном контексте обозначает ряд взаимосвязанных бухгалтерских операций) в качестве первичного ключа в таблице учета транзакций.

Тем не менее в процессе разработки системы обнаруживается, что желательно было бы предусмотреть включение в номера транзакций каких-либо обозначений, позволяющих узнать, к какой категории относится транзакция (к тому же применение таких обозначений может существенно помочь бухгалтерам, эксплуатирующим систему, при выявлении ошибок). Поэтому разработчик вносит предложение — вводить во все номера транзакций префикс, указывающий, к какой подсистеме относится данная транзакция. В конечном итоге номера транзакций принимают примерно такой внд, где ХХХХХХ представляет собой последовательное числовое значение: Аосоппгз Весе1уаЫе Тгапзасгзопз Оепега1 Ьеедег Тгапзаопзопз Аосоппгз Рауао1е Тгапзаог1опз АРХХХХХХ ОЬХХХХХХ АРХХХХХХ Разработчик находит эту идею великолепной и приступает к ее реализации,не пересматривая применяемую по умолчанию опцию, согласно которой кластеризованный индекс задается на первичном ключе.

На первый взгляд решение о применении ключа с указанной структурой кажется вполне приемлемым. Все строки в таблице будут обозначаться уникальными ключами, а бухгалтеры смогут с успехом использовать возможность извлекать дополнительную информацию из номера транзакции. Кроме того, кажется приемлемым кластеризованный индекс, поскольку он позволяет успешно выполнять часто применяемые запросы. в которых предусмотрена обработка ряда последовательных значений номеров транзакций. В действительности применение указанной структуры номеров транзакций приводит отнюдь не к таким благоприятным последствиям.

Достаточно лишь рассмотреть, как будут выполняться операции вставки. Кластеризованный индекс с самого начала предназначается для использования в качестве превосходного механизма, позволяющего избежать возникновения основной части издержек, связанных с разбиением страниц. Ведь если вставка новой строки должна осуществляться так, что ее место расположения будет находиться вслед за последней строкой в таблице. то дюкс в случае разбиения страницы на новую страницу должна переходить единственная, вновь вставляемая строка, поэтому в СУБД БЯ). Бегуег не приходится осуществлять какие- либо попытки перемещения существующих данных.

Но при использовании указанной организации данных возникает иная картина. Новые строки, относящиеся к главной книге (Сепега! (.ес1~ег — С1.), действительно будут записываться вслед за последней строкой таблицы (поскольку префикс С1. занимает после сортировки по алфавиту последнее место в списке префиксов, а но- Структуры памяти и индексные структуры ЯЯЕ Ьегчег оо69 мера транзакций возрастают последовательно).

Но при вводе данных, относящихся к транзакциям типа АК и АР, возникают серьезные проблемы, поскольку нарушается последовательный порядок вставки. После перехода к выполнению, допустим, операции вставки данных по транзакции с ключом АР000025, в СУБД 5Ог. Яегчег обнаруживается, что на соответствующей странице недостаточно места, после чего СУБД находит в таблице строку с ключом АК000001 и определяет, что операция вставки не является последовательной. Прежде чем появится возможность выполнить операцию вставки данных с ключом АР000025, необходимо скопировать половину строк со старой страницы на новую страницу. Возникающие при этом издержки могут оказаться колоссальными.

Характеристики

Тип файла
PDF-файл
Размер
39,07 Mb
Тип материала
Предмет
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6314
Авторов
на СтудИзбе
312
Средний доход
с одного платного файла
Обучение Подробнее