|
Программирование >> Программирование баз данных
услови51х применение кластеризованных индексов приводит к снижению производительности) . Некластеризованные индексы следует задавать только на таких столбцах, которые позволяют достичь высокого уровня избирательности (т.е. на столбцах, в которых 95% строк или больше являются уникальными). Продуманное использование индексов способствует повышению быстродействия всех операторов DML, в том числе INSERT, UPDATE, DELETE и SELECT, но, вообще говоря, чаще всего вьшолнение операторов INSERT, DELETE и UPDATE (напомним, что в последних используются удаление и вставка) под действием индексов замедляется. Та часть процедуры вьшолнения запроса, которая связана с поиском, благодаря использованию индекса осуществляется быстрее, а другая часть запроса, при осуществлении которой происходит модификация данных, требует дополнительных издержек (в связи с необходимостью сопровождения индекса, а не только фактических данных). Индексы занимают определенную часть пространства в базе данньгх. Индексы используются, только если в условии запроса в первую очередь упоминается первый столбец индекса. Применение индексов может повлечь за собой не только повышение, но и снижение производительности, поэтому необходимо тщательно обосновывать необходимость создания каждого индекса и не формировать индексы, которые в действительности не требуются. Индексы XML позволяют достичь такой же производительности операций доступа к данным XML, имеющим сложную структуру, как и при обеспечении с помощью обычных индексов доступа к реляционным данным, характеризующимся гораздо более простой структурой, но следует учитывать, что применение индексов XML, как и всех прочих индексов, связано с возникновением дополнительньгх издержек. В табл. 8.4 приведены контрольные вопросы, с помощью которьгх можно проще определить необходимые условия применения индексов. Таблица 8.4. Контрольные вопросы для определения необходимых условий применения индексов Вопрос Рекомендация Много ли операций вставки или Если ответ на этот вопрос является положительным, то обновления применяется к сведите количество индексов к минимуму. В таблицах рассматриваемой таблице? такого типа модификации обычно осуществляются путем осуществления поиска отдельных строк с помощью первичного ключа. Как правило, для такой таблицы достаточно предусмотреть лишь индекс, заданный на столбце (столбцах) первичного ключа. Если операции вставки осуществляются непоследовательно, то, по-видимому, целесообразно отказаться от использования кластеризованного индекса Вопрос Рекомендация Применяется ли данная таблица в основном для формирования отчетов? Иными словами, является ли таблица таковой, что в ней выполняется небольшое количество операций вставки, но на основе ее данных формируется большое количество различных отчетов? Являются ли данные таковыми, что определенный на них индекс характеризуется вьюокой степенью избирательности? Уничтожены ли все индексы, которые больше не требуются? Предусмотрена ли утвержденная стратегия сопровождения индексов? Чем больше индексов, тем лучше. Задайте кластеризованный индекс на таком столбце (столбцах) с часто используемой информацией, в котором, по всей вероятности, выборка данных будет осуществляться в виде сплошных участков. В системах OLAP чаще всего применяется во много раз больше индексов, чем в системах OLTP Если ответ на этот вопрос является положительным и столбец с этими данными часто упоминается в конструкциях WHERE, ТО задэйте на нем индекс Если ответ на этот вопрос является отрицательным, почему это не сделано? Если ответ на этот вопрос является отрицательным, почему это не сделано? Глава 9 Представления До сих пор в настоящей книге рассматривались базовые объекты, т.е. объекты, которые в основном можно считать имеющими самостоятельное существование. В этой главе мы переходим к описанию виртуальных объектов (которые также можно считать таковыми лишь в определенной степени), примером которых являются представления. Эта книга написана на основе предположения, что ее читатель уже обладает определенными знаниями об SQL Server, поэтому в данной главе, как и в большинстве предьщущих глав, вступительные сведения о представлениях даны главным образом в виде обзора. Кроме того, в ней будут представлены некоторые более сложные понятия, особенно касающиеся секционированных и индексированных представлений. Практика показывает, что представления используются либо слишком часто, либо слишком редко, иными словами, в действительности почти не встречаются такие проекты, в которых степень применения представлений была бы вполне оправдана. Изучение этой главы позволит читателю приобрести навыки использования представлений для достижения описанных ниже целей. Сократить кажущуюся сложность базы данньгх для конечных пользователей. Обеспечить доступ пользователей ко всем необходимым данным и вместе с тем исключить возможность выборки конфиденциальной информации, хранимой в некоторых столбцах. Предусмотреть в базе данных дополнительные средства индексации, позволяющие повысить производительность запросов даже в том случае, если представления, на которых основаны индексы, не предназначены для использования по другому назначению. Получить основные сведения о секционированньгх таблицах и их использовании, а также изучить начальные этапы создания объединенных серверов (часто применяемых для достижения очень высокой производительности серверной части). Представление по самой своей сути является не чем иным, как хранимым запросом. В основе представления может лежать простой запрос, с помощью которого осуществляется выборка части столбцов только из одной таблицы, а остальные остаются нетронутыми, или сложный запрос, в котором соединяется несколько таблиц и создается один объект, полностью аналогичный отдельной таблице.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |