Настройка параллельных операций с индексами
В этом разделе определяется максимальная степень параллелизма и объясняется, как изменить этот параметр в SQL Server 2014 с помощью SQL Server Management Studio или Transact-SQL. На многопроцессорных компьютерах, работающих под управлением SQL Server Enterprise или выше, инструкции индекса могут использовать несколько процессоров для выполнения операций сканирования, сортировки и индексирования, связанных с инструкцией index, так же, как и другие запросы. Число процессоров, задействованных при выполнении одной индексной инструкции, определяется параметром конфигурации max degree of parallelism , текущей рабочей нагрузкой и статистикой индекса. Параметр max degree of parallelism определяет максимальное число процессоров, используемых при параллельном выполнении плана. Если компонент Компонент SQL Server Database Engine определяет, что система загружена, степень параллелизма операции с индексами автоматически уменьшается перед началом выполнения инструкции. Компонент Компонент Database Engine уменьшает также степень параллелизма, если ведущий ключевой столбец несекционированного индекса имеет ограниченное число различных значений или частота появления таких значений существенно изменяется.
Примечание
Параллельные операции с индексами доступны не во всех выпусках SQL Server . Дополнительные сведения см. в разделе Функции, поддерживаемые выпусками SQL Server 2014.
В этом разделе
Перед началом работы
Для настройки параметра max degree of parallelism используется:
Перед началом
Ограничения
Число процессоров, используемых оптимизатором запросов, как правило, обеспечивает оптимальную производительность. Однако некоторые операции, например создание, перестроение или удаление очень больших индексов, требуют большого количества ресурсов и могут привести к нехватке ресурсов для других приложений и операций базы данных на время выполнения операции с индексами. При возникновении этой проблемы можно вручную установить максимальное количество процессоров, которые используются при выполнении индексной инструкции, ограничив число процессоров, используемых в операции с индексами.
Параметр индекса MAXDOP замещает параметр конфигурации max degree of parallelism только для запросов, указывающих этот параметр. В следующей таблице перечислены действительные целочисленные значения, которые могут быть установлены для параметра конфигурации максимальной степени параллелизма и параметра индекса MAXDOP.
Значение Описание 0 Указывает, что сервер определяет число используемых процессоров в зависимости от текущей рабочей нагрузки. Это значение по умолчанию, которое рекомендуется использовать. 1 Подавляет формирование параллельных планов. Операция будет выполнена последовательно. 2–64 Ограничивает число процессоров указанным значением. Может быть использовано меньше процессоров, в зависимости от рабочей нагрузки. Если указано значение, превышающее количество доступных процессоров, будет использоваться реальное количество доступных процессоров. Параллельное выполнение индекса и параметр индекса MAXDOP применяются к следующим инструкциям Transact-SQL:
CREATE INDEX
ALTER INDEX REBUILD
DROP INDEX (применяется только для кластеризованных индексов)
ALTER TABLE ADD (индекс) CONSTRAINT
ALTER TABLE DROP (кластеризованный индекс) CONSTRAINT
Параметр индекса MAXDOP не может быть задан в инструкции ALTER INDEX REORGANIZE.
Операции с секционированными индексами, для которых необходима сортировка, могут требовать больше памяти, если оптимизатор запросов применяет степени параллелизма к операциям построения. Чем выше степень параллелизма, тем больше требуется памяти. Дополнительные сведения см. в разделе Partitioned Tables and Indexes.
Безопасность
Разрешения
Необходимо разрешение ALTER для таблицы или представления.
Использование среды SQL Server Management Studio
Задание параметра max degree of parallelism для индекса
В обозревателе объектов щелкните знак «плюс», чтобы развернуть базу данных, содержащую таблицу, в которой необходимо указать параметр max degree of parallelism для индекса.
Разверните папку Таблицы.
Щелкните знак «плюс», чтобы развернуть таблицу, в которой необходимо указать параметр max degree of parallelism для индекса.
Разверните папку Индексы.
Щелкните правой кнопкой мыши индекс, для которого нужно задать параметр max degree of parallelism, и выберите пункт Свойства.
В разделе Выбор страницыщелкните Параметры.
Выберите свойство Максимальная степень параллелизмаи введите значение от 1 до 64.
Нажмите кнопку ОК.
Использование Transact-SQL
Задание параметра max degree of parallelism для существующего индекса
В обозревателе объектовподключитесь к экземпляру компонента Компонент Database Engine.
На стандартной панели выберите пункт Создать запрос.
Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить.
USE AdventureWorks2012; GO /*Alters the IX_ProductVendor_VendorID index on the Purchasing.ProductVendor table so that, if the server has eight or more processors, the Database Engine will limit the execution of the index operation to eight or fewer processors. */ ALTER INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor REBUILD WITH (MAXDOP=8); GO
Дополнительные сведения см. в разделе ALTER INDEX (Transact-SQL).
Задание параметра max degree of parallelism для нового индекса
В обозревателе объектовподключитесь к экземпляру компонента Компонент Database Engine.
На стандартной панели выберите пункт Создать запрос.
Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить.
USE AdventureWorks2012; GO CREATE INDEX IX_ProductVendor_NewVendorID ON Purchasing.ProductVendor (BusinessEntityID) WITH (MAXDOP=8); GO
Дополнительные сведения см. в статье CREATE INDEX (Transact-SQL).