Установка параметров индекса
При проектировании, создании или изменении индекса следует учитывать несколько параметров индекса. Эти параметры можно указывать при создании или перестроении индекса. Кроме того, некоторые параметры индекса можно установить в любое время с помощью предложения SET инструкции ALTER INDEX.
Параметр индекса
Описание
Сохранение установки в метаданных
См. также
PAD_INDEX
Устанавливает процентную долю свободного пространства в страницах промежуточного уровня во время создания индекса.
Да
FILLFACTOR
Устанавливает процентную долю свободного пространства на конечном уровне каждой страницы индекса во время создания индекса.
Да
SORT_IN_TEMPDB
Определяет место хранения промежуточных результатов сортировки, формируемых во время создания индекса.
При значении ON результаты сортировки хранятся в базе данных tempdb. При значении OFF результаты сортировки хранятся в схеме секционирования или файловой группе, в которой хранится результирующий индекс.
Примечание.
Если не требуется проводить сортировку или сортировка может быть выполнена в памяти, параметр SORT_IN_TEMPDB не учитывается.
Нет
База данных tempdb и создание индекса
IGNORE_DUP_KEY
Указывает реакцию на ошибку, вызванную дублированием значений ключа в многострочной транзакции INSERT в уникальном кластеризованном или уникальном некластеризованном индексе.
Да
STATISTICS_NORECOMPUTE
Указывает, следует ли автоматически выполнять перерасчет устаревшей статистики индексов.
Да
DROP_EXISTING
Указывает, что существующий индекс должен быть удален и создан заново.
Нет
Реорганизация и перестроение индексов
ONLINE
Определяет, разрешен ли параллельный доступ пользователей к данным базовой таблицы или кластеризованного индекса, а также к любым связанным с ними некластеризованным индексам во время операций над индексом.
Примечание.
Операции с индексом в оперативном режиме доступны только в Microsoft SQL Server 2005 Enterprise Edition.
Нет
Выполнение операций над индексом в оперативном режиме.
ALLOW_ROW_LOCKS
Определяет, используются ли блокировки строки при доступе к данным индекса.
Да
ALLOW_PAGE_LOCKS
Определяет, используются ли блокировки страницы при доступе к данным индекса.
Да
MAXDOP
Устанавливает максимальное число процессоров, которые могут быть использованы обработчиком запросов для выполнения одной инструкции индекса. Число задействованных процессоров может быть меньше в зависимости от текущей рабочей нагрузки системы.
Примечание.
Параллельные операции над индексом доступны только в SQL Server 2005 Enterprise Edition.
Нет
Настройка параллельных индексных операций
Установка параметров индекса
Установка параметров без перестроения
С помощью предложения 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
См. также
Основные понятия
Другие ресурсы
sys.indexes (Transact-SQL)
sys.stats (Transact-SQL)