Индексы. InterBase (как и другие реляционные СУБД) хранит записи в таблицах в неупорядоченном виде

InterBase (как и другие реляционные СУБД) хранит записи в таблицах в неупорядоченном виде. Записи, добавляемые в таблицу одна за другой, не обязательно окажутся "рядом". Данные, извлекаемые из таблицы, также не имеют какого-либо порядка, кроме того, который явно указан в запросе на выборку информации.

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

Важно только знать, что создание индексов может привести к значительному ускорению процессов поиска и сортировки.

Не следует создавать индекс на поля с ограниченным набором значений – например, на поле, хранящие пол человека, которое содержит только два значения – "м" и "ж".

Использование индексов имеется два отрицательных последствия:

1. Для индексов дополнительно тратится дисковое пространство.

2. Наличие индексов замедляет модификацию данных в таблице.

Индексы создаются при помощи команды CREATE INDEX.

Синтаксис оператора создания индекса:

CREATE [UNIQUE] [ASC[ENDING] | DESC[ENGING]] INDEX

Имя_Индекса ON Таблица(Поле [, Поле...]);

Индекс может быть либо возрастающим (ASC[ENDING]), либо убывающим (DESC[ENGING]). Если при создании индекса указать UNIQUE, то можно будет заносить в таблицу только уникальные значения индексированных полей.

Пример создания индекса:

-- индекс по фамилии человека:

CREATE INDEX Index_Person_Name ON Person(Pr_LastName);

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

Чтобы пересоздать индекс, можно использовать следующие способы:

1. Перестроить индекс с помощью команды ALTER INDEX. Для этого надо последовательно выполнить две команды:

ALTER INDEX Имя_Индекса INACTIVE;

ALTER INDEX Имя_Индекса ACTIVE;

2. Удалить индекс (командой DROP INDEX), а затем повторно создать его.

3. Выполнить резервное копирование и восстановление базы данных.

Индекс характеризуется числом в пределах от 0 до 1, которое называется статистикой. Это число зависит от числа различных значений поля в таблице. Оптимизатор запросов InterBase использует это число для определения эффективности применения индекса в запросе. Статистика определяется при создании и перестройке индекса, а также по команде пересчета статистики. Когда число записей в таблице изменяется, пересчет статистики может улучшить производительность. Пересчет статистики не перестраивает индекс, а только определяет статистику.

Команда пересчета статистики индекса:

SET STATISTICS INDEX Имя_Индекса; 25


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: