Установка параметров индекса

При проектировании, создании или изменении индекса следует учитывать несколько параметров индекса. Эти параметры можно указывать при создании или перестроении индекса. Кроме того, некоторые параметры индекса можно установить в любое время с помощью предложения SET инструкции ALTER INDEX.

Параметр индекса

Описание

Сохранение установки в метаданных

См. также

PAD_INDEX

Устанавливает процентную долю свободного пространства в страницах промежуточного уровня во время создания индекса.

Да

Коэффициент заполнения

FILLFACTOR

Устанавливает процентную долю свободного пространства на конечном уровне каждой страницы индекса во время создания индекса.

Да

Коэффициент заполнения

SORT_IN_TEMPDB

Определяет место хранения промежуточных результатов сортировки, формируемых во время создания индекса.

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

ПримечаниеПримечание
Если не требуется проводить сортировку или сортировка может быть выполнена в памяти, параметр SORT_IN_TEMPDB не учитывается.

Нет

База данных tempdb и создание индекса

IGNORE_DUP_KEY

Определяет ответ на ошибку, случающуюся, когда операция вставки пытается вставить в уникальный индекс повторяющиеся значения ключа. Параметр IGNORE_DUP_KEY применяется только к операциям вставки, производимым после создания или перестроения индекса. Значение по умолчанию — OFF.

Да

CREATE INDEX

STATISTICS_NORECOMPUTE

Указывает, следует ли автоматически выполнять перерасчет устаревшей статистики индексов.

Да

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

DROP_EXISTING

Указывает, что существующий индекс должен быть удален и создан заново.

Нет

Реорганизация и перестроение индексов

ONLINE

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

ПримечаниеПримечание
Операции с индексами в сети доступны только в выпусках SQL Server Enterprise, Developer и Evaluation.

Нет

Выполнение операций с индексами в сети.

ALLOW_ROW_LOCKS

Определяет, используются ли блокировки строки при доступе к данным индекса.

Да

CREATE INDEX

Настройка блокировки индекса

ALLOW_PAGE_LOCKS

Определяет, используются ли блокировки страницы при доступе к данным индекса.

Да

CREATE INDEX

Настройка блокировки индекса

MAXDOP

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

ПримечаниеПримечание
Параллельные операции с индексами доступны только в выпусках SQL Server Developer, Evaluation и Enterprise.

Нет

Изменение индексов

DATA_COMPRESSION

Задает режим сжатия данных для указанной таблицы, номера секции или диапазона секций. Возможными значениями являются NONE, ROW и PAGE.

Да

Создание сжатых таблиц и индексов

Установка параметров индекса

Установка параметров без перестроения

С помощью предложения SET в инструкции ALTER INDEX можно установить следующие параметры индекса, не перестраивая индекс:

  • ALLOW_PAGE_LOCKS

  • ALLOW_ROW_LOCKS

  • IGNORE_DUP_KEY

  • STATISTICS_NORECOMPUTE

Эти параметры применяются к индексу немедленно. Другие параметры индекса, например FILLFACTOR и ONLINE, могут быть указаны только при создании или перестроении индекса.

Просмотр настроек параметров индекса

Не все значения параметров индекса хранятся в метаданных. Те значения, которые хранятся в метаданных, можно просмотреть в соответствующих представлениях каталога. Чтобы проверить текущие значения параметров существующих индексов, используйте представление каталога sys.indexes. Чтобы проверить текущее значение для параметра STATISTICS_NORECOMPUTE, используйте представление каталога sys.stats. Дополнительные сведения см. в разделе Просмотр сведений об индексах.

Примеры

В следующем примере устанавливаются значения параметров ALLOW_ROW_LOCKS и IGNORE_DUP_KEY для индекса AK_Product_ProductNumber таблицы Production.Product.

USE AdventureWorks2008R2;
GO
--Verify the current values for these options.
SELECT allow_row_locks, ignore_dup_key
FROM sys.indexes 
WHERE name = N'AK_Product_ProductNumber';
GO
--Set the ALLOW_ROW_LOCKS option OFF and the IGNORE_DUP_KEY option ON.
ALTER INDEX AK_Product_ProductNumber       
ON Production.Product       
SET (ALLOW_ROW_LOCKS = OFF, IGNORE_DUP_KEY = ON);
GO
--Verify the new values for these options.
SELECT allow_row_locks, ignore_dup_key
FROM sys.indexes 
WHERE name = N'AK_Product_ProductNumber';
GO

См. также

Справочник

Основные понятия