FirebirdSQL logo
 TABLEVIEW 

Использование ALTER INDEX для индексов ограничений

Принудительный перевод индексов созданных для ограничений PRIMARY KEY, FOREIGN KEY и UNIQUE не допускается.Тем не менее выполнение оператора ALTER INDEX …​ INACTIVE работает так же хорошо для индексов ограничений, как и другие инструменты для других индексов.

Кто может выполнить ALTER INDEX?

Выполнить оператор ALTER INDEX могут:

  • Администраторы

  • Владелец таблицы, для которой построен индекс;

  • Пользователи с привилегией ALTER ANY TABLE.

docnext count = 8

Примеры

Example 1. Перевод индекса в неактивное состояние
ALTER INDEX IDX_UPDATER INACTIVE;
Example 2. Возврат индекса в активное состояние
ALTER INDEX IDX_UPDATER ACTIVE;
См. также:

CREATE INDEX, DROP INDEX.

DROP INDEX

Назначение

Удаление индекса из базы данных.

Доступно в

DSQL, ESQL.

Синтаксис
DROP INDEX indexname
Table 1. Параметры оператора DROP INDEX
Параметр Описание

indexname

Имя индекса.

Оператор DROP INDEX удаляет существующий индекс из базы данных.При наличии зависимостей для существующего индекса (если он используется в ограничении) удаление не будет выполнено.

Кто может удалить индекс?

Выполнить оператор DROP INDEX могут:

  • Администраторы

  • Владелец таблицы, для которой построен индекс;

  • Пользователи с привилегией ALTER ANY TABLE.

Примеры

Example 1. Удаление индекса
DROP INDEX IDX_UPDATER;
См. также:

CREATE INDEX, ALTER INDEX.

SET STATISTICS

Назначение

Пересчёт селективности индекса.

Доступно в

DSQL, ESQL.

Синтаксис
SET STATISTICS INDEX indexname
Table 1. Параметры оператора SET STATISTICS
Параметр Описание

indexname

Имя индекса.

Оператор SET STATISTICS пересчитывает значение селективности для указанного индекса.

Селективность индекса

Селективность (избирательность) индекса — это оценочное количество строк, которые могут быть выбраны при поиске по каждому значению индекса.Уникальный индекс имеет максимальную селективность, поскольку при его использовании невозможно выбрать более одной строки для каждого значения ключа индекса.Актуальность селективности индекса важна для выбора наиболее оптимального плана выполнения запросов оптимизатором.

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

Note

Отметим, что в Firebird статистика индексов автоматически не пересчитывается ни после массовых изменений данных, ни при каких либо других условиях.При создании (CREATE) или его активации (ALTER INDEX ACTIVE) статистика индекса полностью соответствует его содержимому.

Пересчёт селективности индекса может быть выполнен под высоко параллельной нагрузкой без риска его повреждения.Тем не менее следует помнить, что при высоком параллелизме рассчитанная статистика может устареть, как только закончится выполнение оператора SET STATISTICS.

Кто может обновить статистику?

Выполнить оператор SET STATISTICS могут:

  • Администраторы

  • Владелец таблицы, для которой построен индекс;

  • Пользователи с привилегией ALTER ANY TABLE.

Примеры

Example 1. Пересчёт селективности индекса IDX_UPDATER
SET STATISTICS INDEX IDX_UPDATER;
См. также:

CREATE INDEX, ALTER INDEX.