Поделиться через


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

При проектировании, создании или изменении индекса следует учитывать несколько параметров индекса. Эти параметры можно указывать при создании или перестроении индекса. Кроме того, некоторые параметры индекса можно установить в любое время с помощью предложения 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

См. также

Справочник

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