Установка параметров индекса
При проектировании, создании или изменении индекса следует учитывать несколько параметров индекса. Эти параметры можно указывать при создании или перестроении индекса. Кроме того, некоторые параметры индекса можно установить в любое время с помощью предложения SET инструкции ALTER INDEX.
Параметр индекса |
Описание |
Сохранение установки в метаданных |
См. также |
---|---|---|---|
PAD_INDEX |
Устанавливает процентную долю свободного пространства в страницах промежуточного уровня во время создания индекса. |
Да |
|
FILLFACTOR |
Устанавливает процентную долю свободного пространства на конечном уровне каждой страницы индекса во время создания индекса. |
Да |
|
SORT_IN_TEMPDB |
Определяет место хранения промежуточных результатов сортировки, формируемых во время создания индекса. При значении ON результаты сортировки хранятся в базе данных tempdb. При значении OFF результаты сортировки хранятся в схеме секционирования или файловой группе, в которой хранится результирующий индекс.
Примечание
Если не требуется проводить сортировку или сортировка может быть выполнена в памяти, параметр SORT_IN_TEMPDB не учитывается.
|
Нет |
|
IGNORE_DUP_KEY |
Определяет ответ на ошибку, случающуюся, когда операция вставки пытается вставить в уникальный индекс повторяющиеся значения ключа. Параметр IGNORE_DUP_KEY применяется только к операциям вставки, производимым после создания или перестроения индекса. Значение по умолчанию — OFF. |
Есть |
|
STATISTICS_NORECOMPUTE |
Указывает, следует ли автоматически выполнять перерасчет устаревшей статистики индексов. |
Да |
|
DROP_EXISTING |
Указывает, что существующий индекс должен быть удален и создан заново. |
Нет |
|
ONLINE |
Определяет, разрешен ли параллельный доступ пользователей к данным базовой таблицы или кластеризованного индекса, а также к любым связанным с ними некластеризованным индексам во время операций с индексами.
Примечание
Фоновые операции с индексами доступны только в выпусках SQL Server Enterprise, Developer и Evaluation.
|
Нет |
|
ALLOW_ROW_LOCKS |
Определяет, используются ли блокировки строки при доступе к данным индекса. |
Да |
|
ALLOW_PAGE_LOCKS |
Определяет, используются ли блокировки страницы при доступе к данным индекса. |
Да |
|
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 AdventureWorks;
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
См. также