Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LektsiiNovye.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.92 Mб
Скачать

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

В отличие от кластеризованного индекса некластеризованный индекс не содержит реальных данных таблицы в своих узлах-листьях. Узлы-листья могут содержать один из двух типов информации о местоположении строк данных. Во-первых, если по таблице не создан кластеризованный индекс, то некластеризованные индексы по этой таблице хранят в своих узлах-листьях идентификаторы строк (Row ID) (рис. 6.7). Каждый идентификатор строки указывает реальную строку данных в таблице. Идентификатор строки – это значение, включающее в себя номер файла данных, номер страницы и местоположение строки на этой странице. Это значение обеспечивает быстрый доступ к реальным данным, указывая точное местоположение этих данных.

Если по таблице создан кластеризованный индекс, то некластеризованные индексы будут содержать в узле-листе значение ключа кластеризованного индекса для этих данных (рис. 6.8). При достижении узла-листа некластеризованного индекса находящееся в нём значение кластеризованного ключа используется для поиска в кластеризованном индексе, соответствующий узел-лист которого содержит искомую строку данных.

Разрешается создавать 249 некластеризованных индексов на одну таблицу, но это было бы неразумно. Обычно на практике используется несколько некластеризованных индексов по различным колонкам таблицам. Чтобы определить, какой индекс использовать, оптимизатор запросов использует предикат в предложении WHERE.

рис. 6.7. Некластеризованный индекс по таблице, не имеющей кластеризованного индекса

рис. 6.8. Некластеризованный индекс по таблице, имеющей кластеризованный индекс

Полнотекстовые индексы

Полнотекстовый индекс SQL Server на самом деле больше похож на каталог, чем на индекс, и он имеет структуру, отличную от B-дерева. Полнотекстовый индекс позволяет выполнять поиск по группам ключевых слов. Полнотекстовый индекс является частью службы Microsoft Search; он широко используется в механизмах поиска Wеb-узлов и других текстовых операциях.

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

  • полнотекстовый индекс должен иметь колонку, которая уникальным образом идентифицирует каждую строку таблицы;

  • полнотекстовый индекс должен также содержать одну или несколько колонок символьных строк таблицы;

  • для каждой таблицы может существовать только один полнотекстовый индекс;

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]