Сцепленные индексы

Оценить
(0 голоса)

Если все необходимые для запроса столбцы могут быть найдены в индексе, то оптимизатору проще выбрать операцию сканирования индекса вместо обращения ко всей базовой таблице. Concatenated indexes - сцепленные индексы - обладают тем преимуществом, что включают дополнительные столбцы в конце индексного ключа, которые не являются необходимыми для проведения индексирования. Тщательный отбор сцепленных индексов позволяет некоторым запросам полностью выполняться лишь на основе информации индекса.

Ранее существовало мнение, что создание индекса может повысить производительность запроса, если предикаты запроса являются достаточно селективными (избирательными), чтобы отфильтровать не более 0.5-2% таблицы. Это ограничение не применимо к сцепленным индексам, которые позволяют обойти базовую таблицу, поскольку сканирование индекса практически всегда более эффективно, чем сканирование таблицы.

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

Экзотические оптимизации

В результате тестирования конкурентоспособности программных продуктов подчас порождаются и вовсе курьезные нововведения, некоторые из них являются полезными для конечного пользователя, а другие - нет. Два таких новшества, индексы объединения и материализованные представления, были более всего ответственны за плохие результаты теста ТРС-D, описываемого в главе 26.

Индексы объединения

Назначение join indexes - индексов объединения - заключается в избавлении от соединений посредством построения индексов со столбцами из нескольких таблиц. Как и сцепленные индексы, индексы объединения могут избавить от необходимости обращения к базовой таблице посредством включения дополнительных столбцов в индекс. Однако они идут еще дальше, чем сцепленные индексы, и включают столбцы из нескольких таблиц. В результате этого индексы объединения выполняют предварительное соединение таблиц, а результаты сохраняют в индексе.

Цена избавления от объединений - сложный и узкоспециализированный индекс. Как и все индексы, индексы объединения должны обновляться всякий раз при изменении данных в тех столбцах базовой таблицы, к которым осуществляется обращение, поэтому при использовании индексов объединения возрастает время выполнения обновлений.

Материализованные представления
Экспертное вмешательство
Сердцем реляционной системы баз данных является оптимизатор запросов
Компиляция запросов
Факторы, негативно влияющие на оптимизацию запроса

Добавить комментарий


Защитный код
Обновить