Некластеризованные индексы

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

Некластеризованный индекс имеет точно такую же структуру, что и кластеризованный индекс, но с двумя важными отличиями:

♦ некластеризованный индекс не изменяет физический порядок строк в таблице;

♦ страницы листьев в некластеризованном индексе состоят из индексных ключей и закладок.

Физический порядок строк в таблице не изменяется, если для этой таблицы определяется один или более некластеризованных индексов. Для каждого некластеризованного индекса Database Engine создает дополнительную индексную структуру, которая сохраняется в индексных страницах.

Закладка в некластеризованном индексе показывает, где находится строка, соответствующая индексному ключу. Закладка, как часть индексного ключа, может иметь две формы, в зависимости от формы таблицы, т. е. таблица может быть в кластеризованной форме или находиться в куче. (В терминологии SQL Server куча - это таблица без кластеризованного индекса.) Если существует кластеризованный индекс, то закладка некластеризованного индекса указывает на структуру В-дерева кластеризованного индекса таблицы. Если в таблице нет кластеризованного индекса, то закладка идентична идентификатору строки (Row IDentifier, RID), который содержит три части: адрес файла, в котором располагается соответствующая таблица, адрес физического блока (страницы), в котором хранится строка, и смещение, которое является позицией строки внутри страницы.

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

♦ куча- проход по некластеризованной индексной структуре, за которым следует поиск строки с использованием RID;

♦ кластеризованная таблица- проход по некластеризованной индексной структуре, за которым следует проход по соответствующему кластеризованному индексу.

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

Некластеризованные индексы

 


Transact-SQL и индексы
Создание индексов
Получение информации о фрагментации индекса
Редактирование информации индекса
Изменение индексов

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


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

© 2018 www.serversql.ru. Все права защищены.