Читайте также:
|
|
Если по таблице создан кластеризованный индекс, то некластеризованные индексы будут содержать в узле-листе значение ключа кластеризованного индекса для этих данных (Рисунок).
Рис.. Некластеризованный индекс по таблице, имеющей кластеризованный индекс.
Если в таблице определен кластерный индекс, то сервер должен сначала обратиться к индексу, а затем найти нужную строку в таблице.
Когда же в таблице определен еще и некластерный индекс, то его указатель ссылается не на физическое положение строки в базе данных, а на соответствующий элемент кластерного индекса, описывающего эту строку, что позволяет не перестраивать структуру некластерных индексов всякий раз, когда кластерный индекс меняет физический порядок строк в таблице.
Если по таблице не создан кластеризованный индекс, то некластеризованные индексы по этой таблице хранят в своих узлах-листьях идентификаторы строк (Row ID) (Рисунок).
Рис.. Некластеризованный индекс по таблице, не имеющей кластеризованного индекса
Если в таблице нет кластеризованного индекса, то закладка идентична идентификатору строки (Row IDentifier, RID), который содержит три части: адрес файла, в котором располагается соответствующая таблица, адрес физического блока (страницы), в котором хранится строка, и смещение, которое является позицией строки внутри страницы.
Каждый идентификатор строки указывает реальную строку данных в таблице. Идентификатор строки – это значение, включающее в себя номер файла данных, номер страницы и местоположение строки на этой странице. Это значение обеспечивает быстрый доступ к реальным данным, указывая точное местоположение этих данных.
Количество строк в узле-листе некластеризованного индекса зависит от размера индексных записей.
Как уже говорилось, каждая таблица может иметь только один кластеризованный индекс. Можно создать несколько (в SQL-сервер 249) некластеризованных индексов на одну таблицу. Обычно на практике используется несколько некластеризованных индексов по различным колонкам таблицам.
Поиск данных с использованием некластеризованного индекса может осуществляться одним из двух различных способов в зависимости от формы таблицы:
· куча - проход по некластеризованной индексной структуре, за которым следует поиск строки с использованием RID;
· кластеризованная таблица - проход по некластеризованной индексной структуре, за которым следует проход по соответствующему кластеризованному индексу.
В обоих случаях количество операций ввода/вывода достаточно велико, так что при проектировании некластеризованного индекса нужно проявлять осторожность, и его следует использовать, только если вы уверены, что это значительно повысит производительность.
Дата добавления: 2015-08-05; просмотров: 76 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Поскольку в кластеризованном индексе хранятся реальные данные, то нельзя создать более одного кластеризованного индекса по таблице. | | | Полнотекстовые индексы. |