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

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

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

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

А в связи с тем, что документы ХМЬ имеют сложную структуру, для поиска узлов с данными в документе ХМ1. должен быть предусмотрен способ перехода к нужному узлу документа, или способ предоставления информации о пути такого перехода. С другой стороны, индексы предназначены для жесткой регламентации и очень точного определения структуры и порядка расположения данных; в этом и состоит вся сложность решения задачи определения индексов для документа ХМ1..

В версии ЕОЬ Еегтег 2005 предусмотрена возможность создавать индексы на столбцах, предназначенных для хранения данных типа ХМ1.. При этом должны учитываться описанные ниже основные требования. Структуры памяти и индексные структуры 8Я1. Яегчег 363 0 На таблице, содержащей код ХМЕ, который подлежит индексации, должен быть задан кластеризованный индекс. О Прежде чем появится возможность создавать вторичные индексы ХМЕ, на столбце с данными ХМБ должен быть определен первичный индекс ХМБ (дополнительная информация по этой теме приведена ниже).

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

Вторичные индексы ХМЕ Вторичные индексы ХМБ не имеют каких-либо важнгях отличительных особенностей. Во многом аналогично тому, как некластеризованные индексы указывают на кластеризованный ключ класгеризованного индекса, вторичные индексы ХМБ указывают на первичный индекс ХМБ в основном по такому же принципу. После создания первичного индекса ХМБ на том же столбце с данными ХМЕ может быть создано дополнительно до 248 вторичных индексов ХМБ. Подразумеваемые индексы, которые создаются после ввода в действие ограничений Автор хотел бы внести предложение называть индексы, создаваемые в связи с вводом в действие ограничений, "индексами, создаваемыми по случаю".

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

Ситуации подобного рода характеризуются также тем, что в них применяются индексы, дублирующие друг друга. При условии, что для индексов используются разные имена, СУБД 8(1Ь 8егчег не препятствует созданию одинаковых индексов. 364 Глава 9 Подразумеваемые индексы создаются после определения для таблицы одного из двух перечисленных ниже ограничений. (3 Ограничение РК1МАКУ КЕУ. П Ограничение СБ10ПЕ (называемое также определением альтернативного ключа). Выше в данной главе синтаксическая структура оператора СКЕЙТЕ 1пРЕХ рассматривалась достаточно подробно, поэтому мы не будем возвращаться к этой теме. Но следует отметить, что при создании индекса, который рассматривается как подразумеваемый индекс, относящийся к ограничению, не допускается применение любых опций, кроме (СЕПЕТЕЕЕЕ~ИОНСЕПЕТЕЕЕЕ) и Р111РЛСТОК.

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

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

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

В противном случае по мере уменьшения избирательности ключа происходит удивительно быстрый, почти экспоненциальный рост количества выполняемых операций. Есть основания полагать, что при наличии всего лишь 90 — 95% уникальных значейий в индексированном столбце нет смысла использовать некластеризованный индекс, поскольку в связи с циклической организацией процесса доступа к данным создаются весьма значительные издержки. Кластеризованные индексы в значительно меньшей степени подвержены отрицатеяьному влиянию низкой избирательности, поскольку позволяют сразу же переходить на начало участка таблицы с требуемыми данными, независимо от того, является ли ключ уникальным или нет, а после этого поиск необходимой строки осуществляется очень просто.

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

Но дело обстоит иначе, поскольку внешние ключи чапно применяются в операциях соединения сгааблиуеш на которую они ссылаютск. А пуэименег~ие индексов, независимо от избирательности столбцов, на кото~гых они заданы, весьма способствуеэп повышению пфоизводительности соединения, в связи с этим с помощью индексов могут выполняться тах называемые соединенил слиянием. ззри выполнении опеУэации соединения слиянием пРоисходит выбоРка стРок каждой таблиц ьч и их сРавнекие для отйеделен ия их соответствия кРите~пгям соеди кения ~условиям, лежащим в основе соединения). А поскольку индексы заданы на связанных столбуах в обеих табгицах, поиск строк гфоисходит очень быспфо. Из этого следует, что такой кугитерий, как избирательность, не является решающим, но остается все же довольно важным.

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

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

Следует также помнить, что операция обновления строки осуществляется с помощью двух операций, удаления и вставки, поэтому также приходится обновлять индексы. Но этого еще не достаточно! После удаления строк не только изменяется состав хранимых в таблице данных; приходится обновлять все индексы. Таким образом, создание каждого нового индекса приводит к увеличению потенциального количества строк, которые приходится обновлять.

В предыдущем абзаце не случайно речь зашла о строках, а не об одной строке. Напомним, что В-дерево состоит из нескольких уровней. После каждого внесения изменений на листовом уровне возникает вероятность того, что произойдет разбиение 366 Глава 9 страницы или потребуется внести изменения в одну или несколько страниц нелистовых уровней в целях корректировки ссылок, для того чтобы они правильно указывали на страницу листового уровня. Иногда (а фактически очень часто) наилучшим решением становится отказ от создания еще одно индекса.

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

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

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

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