Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

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

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

 

Создание индекса.

После ознакомления с физической структурой индексов, рассмотрим более подробно параметры оператора создания индекса.

Оператор имеет вид:

CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ]

INDEX имя_индекса ON имя_таблицы (имя_столбца

[ASC|DESC][,...n])

[ INCLUDE ( column_name [,... n ] ) ]

[WITH [PAD_INDEX]

[[,] FILLFACTOR= фактор_заполнения ]

[[,] IGNORE_DUP_KEY]

[[,] DROP_EXISTING]

[[,] STATISTICS_NORECOMPUTE] ]

[ON имя_группы_файлов ]

 

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

ПараметрUNIQUEиспользуется при необходимости ввода в определенное поле только уникальных значений. При указании этого ключевого слова будет создан уникальный индекс. В индексируемом столбце желательно запретить хранение значений NULL, чтобы избежать проблем, связанных с уникальностью значений. После того как для столбца появится уникальный индекс, сервер не разрешит выполнение команд INSERT и UPDATE, которые приведут к появлению дублирующих значений.

 

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

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

Кластеризованные индексы позволяют сильно ускорить доступ в случае, когда запрос осуществляет поиск в диапазоне значений.

 

Параметр NONCLUSTERED позволяет создавать некластерные индексы (значение по умолчанию).

 

Параметр include позволяет задавать неключевые, столбцы, которые добавляются в страницы листьев некластеризованного индекса. Имена столбцов не могут повторяться в списке include и не могут быть одновременно использованы в качестве ключевых и неключевых столбцов.

Опции include используется для создания покрывающего индекса. Существенное повышение производительности может быть достигнуто, когда все столбцы в запросе включены в индекс, потому что оптимизатор запросов может локализовать все значения столбцов в индексных страницах без необходимости доступа к данным таблицы. Эта возможность называется покрывающим индексом или покрывающим запросом.

Следовательно, если включить дополнительные неключевые столбцы в страницы листьев некластеризованного индекса, может быть покрыто большее количество запросов, а их производительность может быть значительно более высокой.

 

Параметр FILLFACTOR =n (WITH FILLFACTOR=фактор_заполнения) осуществляет настройку разбиения индекса на страницы и заметно оптимизирует работу SQL-сервера. Коэффициент FILLFACTOR определяет в процентном соотношении размер создаваемых индексных страниц. При этом имеется обратно пропорциональная зависимость частоты работы с таблицей и коэффициента FILLFACTOR.

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

Опция FILLFACTOR =n определяет процент заполнения каждой индексной страницы во время создания индекса. Можно задать значение FILLFACTOR в диапазоне от 1 до 100. Значения коэффициента заполнения 0 и 100 равнозначны.

Если значение n установлено в 100, то каждая индексная страница будет заполнена на 100%, т.е. существующая страница индекса так же, как и страница, не относящаяся к листу, не будет иметь для добавления новых строк. По этой причине такое значение рекомендуется использовать только для статических таблиц.


Дата добавления: 2015-08-05; просмотров: 64 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Если существует кластеризованный индекс, то закладка некластеризованного индекса указывает на структуру В-дерева кластеризованного индекса таблицы.| Значение по умолчанию 0 также указывает на то, что страница листа индекса будет заполнена полностью и каждая промежуточная страница содержит место для одной записи.

mybiblioteka.su - 2015-2024 год. (0.007 сек.)