При выполнении запроса сначала определяется список индексов, связанный с данной таблицей, затем устанавливается, что является
более эффективным - просмотреть всю таблицу или для обработки запроса использовать существующий индекс. Если InterBase решает
использовать индекс, то поиск ведется сначала по ключевым значениям в индексе, а затем, используя указатели, осуществляется
просмотр самих таблиц для дополнительной фильтрации и окончательной выборки требуемых данных. Использование индекса обычно
требует меньшего количества обращений к диску, чем последовательное чтение строк в таблице. Индекс может быть определен как
на отдельном столбце, так и на множестве столбцов таблицы. При всяком обновлении данных должны обновляться и индексы.
Индексы создаются с помощью Create index, либо автоматически при выполнении команды Create table. Для просмотра индексов, определенных для текущей БД, используется команда Show index, после которой можно указывать имя таблицы. Для просмотра конкретного индекса используется команда Show index <имя индекса>. InterBase автоматически генерирует индексы системного уровня по столбцу или набору столбцов, когда таблицы определяются с конструкцией ограничения ptimary key, foreign key или unique. Команда create index создает индекс на одном или нескольких столбцах таблицы.
create [unique][asc][desc]
index <имя индекса>
On <название таблицы> (<список полей>);
На использование команд накладываются некоторые ограничения:
- нельзя выполнить команду alter index, если изменяемый индекс используется в данный момент.
- для выполнения команды необходимо обладать соответствующими правами
- команда alter index неприменима к индексам, используемым в качестве ограничений логической целостности
- alter index неприменима для изменения состава столбцов в индексе
Для выполнения данной команды необходимо сначала удалить индекс, а затем создать его снова.
Восстановление индекса
Set statistics index <имя индекса>;
В таблицах, где число повторений - значений ключа индекса значительно меняется, периодич. перекомпиляция индекса может значит ускорить время обработки.