Зона особого внимания – Опция Maximum Degree of Parallelism. О интересных вещах из мира IT, инструкции и рецензии Max degree of parallelism что такое

Цель: изучить влияние параллелизма SQL на работу с запросами 1С

Литература:

Тестовая среда:

· Windows server 2008 R2 Enterprise

· MS SQL server 2008 R2

· 1С Предприятие 8.2.19.90

Рисунок 1. SQL properties “General”


Рисунок 2. SQL properties “Advansed”

Инструменты:

· SQL server profiler

· Консоль запросов 1С

Тестовый запрос:

ВЫБРАТЬ

АК.Наименование КАК Наименование

ИЗ

РегистрСведений.АдресныйКлассификатор КАК АК

ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АдресныйКлассификатор КАК АК1

ПО АК.Код = АК1.Код

Подготовка:

Запускаем SQL server Profiler, устанавливаем соединение, отмечаем события и колонки как показано на рисунке 3.


Рисунок 3. Trace properties

Устанавливаем отбор для нашей базы


Рисунок 4. Фильтр по базе

Сокращения:

· Max degree of parallelism – MDOP

· Сost threshold for parallelism - cost

Тестирование последовательного плана запроса (MDOP = 1)


Рисунок 5. Консоль запросов – время выполнения 20 сек.

Параметр SQL сервера “Max degree of parallelism” установлен в 1 (без параллелизма). Смотрим результат в профайлере (рис.6)


Рисунок 6. Последовательный план запроса

SQL сервер сформировал последовательный план запроса, при этом: общая загрузка CPU = 6,750 (сек), а время на выполнение запроса = 7,097(сек)

Тестирование параллельного плана запроса (MDOP = 0, cost =5)

Переводим SQL server в режим параллелизма (в SQL Query):

USE master ;

EXEC sp_configure "show advanced option" , 1;

RECONFIGURE WITH OVERRIDE

USE master ;

exec sp_configure "max degree of parallelism" , 0;

RECONFIGURE WITH OVERRIDE

Выполняем тот же запрос (Рисунок 7)


Рисунок 7. Консоль запросов – время выполнения 16 сек.

Проверяем результат в профайлере (Рисунок 8)


Рисунок 8. Параллельный план запроса

Сервер SQL в этот раз сформировал параллельный план запроса, при этом общая загрузка CPU = 7,905 сек, а длительность выполнения запроса = 3,458 сек

Тестирование последовательного плана запроса (MDOP = 0, cost = 150)

Попытаемся избавиться от параллельного плана, используя параметр «Сost threshold for parallelism». По умолчанию параметр установлен в 5. В нашем случае от формирования параллельного плана удалось избавиться при значении 150 (в SQL Query):

USE master ;

exec sp_configure "cost threshold for parallelism" , 150 ;

Проверяем выполнение запроса в данных условиях (рис. 9)

Рисунок 9. Консоль запросов – время выполнения 20 сек.

Проверяем результат в профайлере (рис.10)


Рисунок 10. Последовательный план запроса.

Сервер SQL сформировал последовательный план запроса. Общая загрузка CPU = 7,171 сек, время выполнения запроса =7, 864 сек.

Выводы:

· Выполнение тестового запроса в среде 1С Предприятия с использованием SQL сервером параллельного плана запроса дает значительный прирост производительности по сравнению с последовательным планом (16 сек. против 20 сек. – выигрыш 4 сек.)

· Выполнения тестового запроса самим сервером SQL при использовании параллельного плана запроса происходит в два раза быстрее, чем при использовании последовательного плана запроса (3,5 сек. против 7,1 сек.)

· Параллелизм SQL сервера можно регулировать не только, используя параметр MDOP, но и параметр «Сost threshold for parallelism»

Не секрет, что обдумывая проблемы конфигурирования SQL сервера, связанные с увеличением производительности, IT-специалисты в своем большинстве, делают выбор в пользу увеличения аппаратных средств. Но всегда ли это оправдано? Все ли методы настройки сервера при этом уже использованы? Известно, что работа с параметрами конфигурации и изменение их значений по умолчанию, способна улучшить производительность и другие характеристики данной системы. Среди этих опций конфигурации SQL есть одна опция, с которой связано много вопросов, это опция - Max degree of parallelism (DOP) - вот о ней и поговорим.

Опция Maximum Degree of Parallelism (DOP) определяет число потоков, на которые SQL Server может распараллелить запрос и означает число используемых процессоров сервера. Параметр этот умолчанию имеет значение 0 – максимальную степень параллелизма. Например, если вы имеете 24 ядра – тогда значение ‘max degree of parallelism’ будет равно 24 и оптимизатор, если он посчитает нужным, может задействовать все процессоры на выполнение одной инструкции, то есть запрос будет распараллелен на 24 потока. Для большинства случаев это хорошо, но не для всех. Также, далеко не всегда хорошо, использование значение этого параметра по умолчанию. Конфигурирование этого параметра может быть нужно, например, в следующей ситуации: допустим, у нас есть приложение, в которое все сотрудники вносят информацию о ежедневных операциях, и, в определенный промежуток времени каждый из пользователей выполняет запрос, который строит отчет обо всех операциях пользователя за некий промежуток времени. Естественно, что если промежуток времени большой, этот запрос будет выполняться долго и, при установке DOP по умолчанию, займет все доступные процессоры, что, естественно, скажется на работе остальных пользователей. Следовательно, изменяя значение DOP, мы можем без изменения самого запроса повысить время отклика SQL сервера у других пользователей.
MS рекомендует устанавливать значение следующим образом:

Установка параметра на TSQL целиком для сервера:

EXEC sp_configure "max degree of parallelism", 4; reconfigure

Так же вы можете установить это значение для конкретного TSQL запроса:

USE AdventureWorks2008R2 ; GO SELECT ProductID, OrderQty, SUM(LineTotal) AS TotalFROM Sales.SalesOrderDetail WHERE UnitPrice < $5.00 GROUP BY ProductID, OrderQty ORDER BY ProductID, OrderQty OPTION (MAXDOP 2); GO

В этом примере «хинт» maxdop меняет значение по умолчанию параметра max degree of parallelism на 2. Посмотреть текущую настройку можно так:

EXEC sp_configure "Show Advanced",1; RECONFIGURE; EXEC sp_configure "max degree of parallelism"

Теперь давай те посмотрим как влияет это значение на скорость выполнения запроса. Для того что бы тестовый запрос, написанный выше, выполнялся более продолжительное время, добавим в него ещё один select. Запрос приобретет следующий вид:

< $5.00) dt2 WHERE dt.UnitPrice < $5.00 GROUP BY dt.ProductID, dt.OrderQty ORDER BY dt.ProductID, dt.OrderQty

На моей тестовой машине значение ‘max degree of parallelism’ выставлено в 0. MSSQL запущен на машине с 4-х ядерным процессором. Я провел серию экспериментов с разными значениями MAXDOP: равным 1 – без распараллеливания запроса; равным 2 - с использованием только 2 ядер; равным 4 – с использованием всех и без хинта для определения варианта, который использует сиквел по умолчанию. Для того, чтобы получить статистику выполнения, в запрос нужно включить опцию SET STATISTICS TIME ON, а также включить кнопку отображения плана запроса в Management studio. Для усреднения полученных результатов я выполнял каждый запрос в цикле 3 раза. Результаты можно видеть ниже:

SELECT dt.ProductID, dt.OrderQty, SUM(dt.LineTotal) AS Total FROM Sales.SalesOrderDetail dt, (SELECT * FROM Sales.SalesOrderDetail WHERE UnitPrice < $5.00) dt2 WHERE dt.UnitPrice < $5.00 GROUP BY dt.ProductID, dt.OrderQty ORDER BY dt.ProductID, dt.OrderQty OPTION (MAXDOP 1); SQL Server Execution Times: CPU time = 45942 ms, elapsed time = 46118 ms. SQL Server Execution Times: CPU time = 45926 ms, elapsed time = 46006 ms. SQL Server Execution Times: CPU time = 45506 ms, elapsed time = 45653 ms.

На плане запроса видно что при установке хинта (MAXDOP 1) запрос выполнялся без распараллеливания. Среднее время выполнения запроса 45925.66 ms

SELECT dt.ProductID, dt.OrderQty, SUM(dt.LineTotal) AS Total FROM Sales.SalesOrderDetail dt, (SELECT * FROM Sales.SalesOrderDetail WHERE UnitPrice < $5.00) dt2 WHERE dt.UnitPrice < $5.00 GROUP BY dt.ProductID, dt.OrderQty ORDER BY dt.ProductID, dt.OrderQty OPTION (MAXDOP 2); SQL Server Execution Times: CPU time = 51684 ms, elapsed time = 28983 ms. SQL Server Execution Times: CPU time = 51060 ms, elapsed time = 26165 ms. SQL Server Execution Times: CPU time = 50903 ms, elapsed time = 26015 ms.

При установке хинта (MAXDOP 2) запрос выполнялся параллельно на 2 cpu, это можно увидеть на Number of Execution в плане выполнения запроса. Среднее время выполнения запроса 27054.33 ms

SELECT dt.ProductID, dt.OrderQty, SUM(dt.LineTotal) AS Total FROM Sales.SalesOrderDetail dt, (SELECT * FROM Sales.SalesOrderDetail WHERE UnitPrice < $5.00) dt2 WHERE dt.UnitPrice < $5.00 GROUP BY dt.ProductID, dt.OrderQty ORDER BY dt.ProductID, dt.OrderQty OPTION (MAXDOP 4); SQL Server Execution Times: CPU time = 82275 ms, elapsed time = 23133 ms. SQL Server Execution Times: CPU time = 83788 ms, elapsed time = 23846 ms. SQL Server Execution Times: CPU time = 53571 ms, elapsed time = 27227 ms.

При установке хинта (MAXDOP 4) запрос выполнялся параллельно на 4 cpu. Среднее время выполнения запроса 24735.33 ms

SELECT dt.ProductID, dt.OrderQty, SUM(dt.LineTotal) AS Total FROM Sales.SalesOrderDetail dt, (SELECT * FROM Sales.SalesOrderDetail WHERE UnitPrice < $5.00) dt2 WHERE dt.UnitPrice < $5.00 GROUP BY dt.ProductID, dt.OrderQty ORDER BY dt.ProductID, dt.OrderQty SQL Server Execution Times: CPU time = 85816 ms, elapsed time = 23190 ms. SQL Server Execution Times: CPU time = 85800 ms, elapsed time = 23307 ms. SQL Server Execution Times: CPU time = 58515 ms, elapsed time = 26575 ms.

запрос выполнялся параллельно, так же 4 cpu. Среднее время выполнения запроса 24357.33ms

links: http://support.microsoft.com/kb/2023536

Оптимизация работы 1С. Настройка сервера MS SQL

Включите возможность мгновенной инициализации файлов (Database instant file initialization)

  • Создание базы данных
  • Добавление файлов, журналов или данных в существующую базу данных
  • Увеличение размера существующего файла (включая операции автоувеличения)
  • Восстановление базы данных или файловой группы

Для включения настройки:

  1. На компьютере, где будет создан файл резервной копии, откройте приложение Local Security Policy (secpol.msc).
  2. Разверните на левой панели узел Локальные политики, а затем кликните пункт Назначение прав пользователей.
  3. На правой панели дважды кликните Выполнение задач по обслуживанию томов.
  4. Нажмите кнопку «Добавить» пользователя или группу и добавьте сюда пользователя, под которым запущен сервер MS SQL Server.
  5. Нажмите кнопку Применить.

Включите параметр «Блокировка страниц в памяти» (Lock pages in memory)

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

Для включения настройки:

  1. В меню Пуск выберите команду Выполнить. В поле Открыть введите gpedit.msc.
  2. В консоли Редактор локальных групповых политик разверните узел Конфигурация компьютера, затем узел Конфигурация Windows.
  3. Разверните узлы Настройки безопасности и Локальные политики.
  4. Выберите папку Назначение прав пользователя.
  5. Политики будут показаны на панели подробностей.
  6. На этой панели дважды кликните параметр Блокировка страниц в памяти.
  7. В диалоговом окне Параметр локальной безопасности - блокировка страниц в памяти выберите «Добавить» пользователя или группу.
  8. В диалоговом окне Выбор: пользователи, учетные записи служб или группы добавьте ту учетную запись, под которой у вас запускается служба MS SQL Server.
  9. Чтобы изменения вступили в силу, перезагрузите сервер или зайдите под тем пользователем, под которым у вас запускается MS SQL Server.

Отключите механизм DFSS для дисков.

Механизм Dynamic Fair Share Scheduling отвечает за балансировку и распределение аппаратных ресурсов между пользователями. Иногда его работа может негативно сказываться на производительности 1С. Чтобы отключить его только для дисков, нужно:

  1. Найти в реестре ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk
  2. Установить значение параметра EnableFairShare в 0

Отключите сжатие данных для каталогов, в которых лежат файлы базы.

При включенном сжатии ОС будет пытаться дополнительно обрабатывать файлы при модификации, что замедлит сам процесс записи, но сэкономит место.

Чтобы отключить сжатие файлов в каталоге, необходимо:

  1. Открыть свойства каталога
  2. На закладке Общие нажать кнопку Другие
  3. Снять флаг «Сжимать» содержимое для экономии места на диске.

Установите параметр «Максимальная степень параллелизма» (Max degree of parallelism) в значение 1.

Данный параметр определяет, во сколько потоков может выполняться один запрос. По умолчанию параметр равен 0, это означает, что сервер сам подбирает число потоков. Для баз с характерной для 1С нагрузкой рекомендуется поставить данный параметр в значение 1, т.к. в большинстве случаев это положительно скажется на работе запросов.

Для настройки параметра необходимо:

  1. Открыть свойства сервера и выбрать закладку Дополнительно
  2. Установить значение параметра равное единице.

Ограничьте максимальный объем памяти сервера MS SQL Server.

Память для MS SQL Server = Память всего – Память для ОС – Память для сервера 1С

Например, на сервере установлено 64 ГБ оперативной памяти, необходимо понять, сколько памяти выделить серверу СУБД, чтобы хватило серверу 1С.

Для нормальной работы ОС в большинстве случаев более чем достаточно 4 ГБ, обычно – 2-3 ГБ.

Чтобы определить, сколько памяти требуется серверу 1С, необходимо посмотреть, сколько памяти занимают процессы кластера серверов в разгар рабочего дня. Этими процессами являются ragent, rmngr и rphost, подробно данные процессы рассматриваются в разделе, который посвящен кластеру серверов. Снимать данные нужно именно в период пиковой рабочей активности, когда в базе работает максимальное количество пользователей. Получив эти данные, необходимо прибавить к ним 1 ГБ – на случай запуска в 1С «тяжелых» операций.

Чтобы установить максимальный объем памяти, используемый MS SQL Server, необходимо:

  1. Запустить Management Studio и подключиться к нужному серверу
  2. Открыть свойства сервера и выбрать закладку Память
  3. Указать значение параметра Максимальный размер памяти сервера.

Включите флаг «Поддерживать» приоритет SQL Server (Boost SQL Server priority).

Данный флаг позволяет повысить приоритет процесса MS SQL Server над другими процессами.

Имеет смысл включать флаг только в том случае, если на компьютере с сервером СУБД не установлен сервер 1С.

Для установки флага необходимо:

  1. Запустить Management Studio и подключиться к нужному серверу
  2. Открыть свойства сервера и выбрать закладку Процессоры
  3. Включить флаг «Поддерживать приоритет SQL Server (Boost SQL Server priority)» и нажать Ок.

Установите размер авто увеличения файлов базы данных.

Автоувеличение позволяет указать величину, на которую будет увеличен размер файла базы данных, когда он будет заполнен. Если поставить слишком маленький размер авторасширения, тогда файл будет слишком часто расширяться, на что будет уходить время. Рекомендуется установить значение от 512 МБ до 5 ГБ.

  1. Запустить Management Studio и подключиться к нужному серверу
  2. Напротив каждого файла в колонке Автоувеличение поставить необходимое значение

Данная настройка будет действовать только для выбранной базы. Если вы хотите, чтобы такая настройка действовала для всех баз, нужно выполнить эти же действия для служебной базы model. После этого все вновь созданные базы будет иметь те же настройки, что и база model.

Разнесите файлы данных mdf и файлы логов ldf на разные физические диски.

В этом случае работа с файлами может идти не последовательно, а практически параллельно, что повышает скорость работы дисковых операций. Лучше всего для этих целей подходят диски SSD.

Для переноса файлов необходимо:

  1. Запустить Management Studio и подключиться к нужному серверу
  2. Открыть свойства нужной базы и выбрать закладку Файлы
  3. Запомнить имена и расположение файлов
  4. Отсоединить базу, выбрав через контекстное меню Задачи – Отсоединить
  5. Поставить флаг Удалить соединения и нажать Ок
  6. Открыть Проводник и переместить файл данных и файл журнала на нужные носители
  7. В Management Studio открыть контекстное меню сервера и выбрать пункт Присоединить базу
  8. Нажать кнопку Добавить и указать файл mdf с нового диска
  9. В нижнем окне сведения о базе данных в строке с файлом лога нужно указать новый путь к файлу журнала транзакций и нажать Ок.

В данном посте речь пойдет только о MS SQL Server. Если вы собрались "попытать счастья" в использовании 1С с Oracle, DB2, Postrgre вам данная информация будет бесполезна. Но нужно понимать, что в 1С есть прежде всего специалисты по MS SQL серверу. Усилиями со стороны компании IBM появляются ещё и специалисты по DB2. Можно долго рассуждать хорошие или плохие это СУБД, важно одно, наиболее "гладко" 1С работает с MS SQL сервером. Судя по последним сообщениям с "фронта" более-менее приличной стала работа с DB2. Хотя я лично имел опыт настройки 1С для работы с DB2 ещё в версии 8.1 - там всё было как-то не очень. В любом случае выбор другой СУБД должен быть четко аргументирован - либо возможностоями, которых нет в MS SQL (кластер с балансировкой нагрузки, Grid, и т.п.), либо финансами (Oracle уже куплен), либо платформой (всё на linux).

Итак по порядку, что нужно сделать с MS SQL Server:

1) Настроить минимальный и максимальный объем памяти. Минимальный - половина памяти системы. Максимальный - память системы без 2ГБ. Делается это через Management Studio - в свойствах сервера:

2) Если приоритет не установлен на закладке "Процессоры" - нужно установить

3) Максимальную степень параллелизма ставим в 1.

4) Включаем SQL Server Agent, настраиваем Database Mail - ничего там трудного нет, подробно описывать не буду.

5) Настраиваем планы обслуживания:
Общие:
а) Обновление статистики - каждые 2 часа
б) DBCC FREEPROCCACHE - каждые 2 часа
Для каждой базы:
а) Полное резервное копирование
б) Разностное резервное копирование
в) Дефрагментация индексов - каждый день
г) Перестройка индексов - ночью в выходные
д) Проверка целостности базы - раз в месяц ночью в выходные

6) Рекомендую для каждой базы (в свойствах) модель восстановления установить как Simple. В случае если у вас не 24/7 система и менее 1000 пользователей на базу, нет отказоустойчивого кластера и вы не подписывали SLA в котором обязуетесь в случае выхода любого оборудования из строя восстановить данные с точностью до секунды (а не со времени последней резервной копии) эта рекомендация будет разумной. Иначе вы очень скоро будете долго и судорожно размышлять куда же деть разросшийся Tranzaction Log

7) Уберите базу tempdb от обычных баз на другой диск - даже если при этом придётся переконфигурировать RAID массив и снизить его производительность. Иначе 1 пользователь сможет парализовать работу всех остальных. Если у вас есть Hardware Accelereator вместо жесткого диска то конечно можно не отделять и положить tempdb на него, но это только в случае если таковой имеется

8) установите какое-нибудь средство мониторинга - мне, к примеру, нравится spotlight http://www.quest.com/spotlight-on-sql-server-enterprise/

9) Проверьте себя с best practice analizer от Microsoft - http://www.microsoft.com/download/en/details.aspx?id=15289 - замечательный инструмент, который помогает не только с настройками, но и с решением многих проблем.

Теперь вкратце для чего мы всё это делали:

1) Память. Минимальное значение просто убережет вас от "глюков", когда SQL сервер по каким-то только ему известным причинам не использует всю доступную ему память. Должен съесть всю! Максимальное значение убережет вас от свопа в случае если тот же самый оптимизатор использования памяти SQL сервер-а решит что ему ещё на помешало бы....

3) Очень важный пункт - ИХМО его нужно ставить в 1 во всех транзакционных системах. Во-первых - это предотвращает часть блокировок между разными процессами, пытающимися выполнить 1 запрос, соответственно уберегает нас от некоторых "странных" ошибок. Во-вторых... 1 "убийственный" запрос сможет вытянуть на себя все ресурсы сервера, что несколько не справедливо по отношению к остальным пользователям системы.Собственно параметр определяет - сколькими ядрами процессоров может обрабатываться 1 запрос.

5) Про статистику и очистку процедурного кэша - это "на слуху " а вот про реиндексацию часто забываем. А между тем это процедура достаточно важная, особенно с ростом объёма базы важность её увеличивается. Иногда на фрагментации индексов теряется до60 % производительности.

7) При наличии Hardware Accelerator или просто 2 дисков с разными скоростями доступа я бы рекоммендовал ещё задуматься о выделении в базах файловых групп и разделении отдельных таблиц на разные дисковые массивы, с разным временем доступа. Ведь согласитесь, РН "товары на складах" и справочник "Хранилище дополнительной информации" 2 объекта требования к хранению которых в корне рознятся. Не обязательно на быстром массиве хранить все файлы и картинки в базе - можно выделить его на отдельный, не такой быстрый, но где места много (и не бояться потом в базу кучу файлов загружать, кстати).

ОБЛАСТЬ ПРИМЕНЕНИЯ ЭТОЙ СТАТЬИ: SQL Server (начиная с 2008)База данных SQL AzureХранилище данных SQL AzureParallel Data Warehouse

В этом разделе описываются способы настройки параметра конфигурации сервера max degree of parallelism (MAXDOP) в SQL Server 2016 с помощью среды SQL Server Management Studio или Transact-SQL. Если экземпляр SQL Server работает на многопроцессорном компьютере, он определяет оптимальную степень параллелизма, то есть количество процессоров, задействованных для выполнения одной инструкции, для каждого из планов параллельного выполнения. Для ограничения количества процессоров в плане параллельного выполнения может быть использован параметр max degree of parallelism . SQL Server учитывает планы параллельного выполнения для запросов, операций DDL с индексами, параллельной вставки, изменения столбца в режиме "в сети", параллельного сбора статистики и заполнения статических курсоров и курсоров, управляемых набором ключей.

Ограничения

  • Если параметр affinity mask имеет значение, отличное от значения по умолчанию, он может ограничивать число процессоров, доступных для SQL Server в симметричных многопроцессорных системах (SMP).

    Этот параметр является дополнительным и его следует изменять только опытным администраторам баз данных или сертифицированным техническим специалистам SQL Server .

    Чтобы разрешить серверу определять максимальную степень параллелизма, установите 0 в качестве значения данного параметра, то есть значение по умолчанию. Установка значения 0 в качестве максимальной степени параллелизма позволяет SQL Server использовать все доступные процессоры (до 64 процессоров). Чтобы отключить создание параллельных планов, присвойте параметру max degree of parallelism значение 1. Задайте значение для параметра в диапазоне от 1 до 32 767, чтобы указать максимальное количество процессорных ядер, которые могут быть использованы при выполнении одного запроса. Если указано значение, превышающее количество доступных процессоров, используется действительное количество доступных процессоров. Если у компьютера только один процессор, то значение параметра max degree of parallelism учитываться не будет.

    Значение параметра max degree of parallelism можно переопределить, задав в инструкции указание запроса MAXDOP. Дополнительные сведения см. в разделе .

    Операции по созданию и перестройке индексов, а также по удалению кластеризованного индекса могут оказаться достаточно ресурсоемкими. Значение параметра max degree of parallelism для операций с индексами можно переопределить, указав в инструкции параметр индекса MAXDOP. Значение MAXDOP применяется к инструкции во время выполнения и в метаданных индекса не хранится. Дополнительные сведения см. в статье .

    Помимо запросов и операций с индексами, этот параметр также управляет степенью параллелизма при выполнении инструкций DBCC CHECKTABLE, DBCC CHECKDB и DBCC CHECKFILEGROUP. Планы параллельного выполнения для этих инструкций можно отключить с помощью флага трассировки 2528. Дополнительные сведения см. в разделе .

Безопасность

Разрешения

Разрешения на выполнение хранимой процедуры sp_configure без параметров или только с первым параметром по умолчанию предоставляются всем пользователям. Для выполнения процедуры sp_configure с обоими параметрами для изменения параметра конфигурации или запуска инструкции RECONFIGURE необходимо иметь разрешение ALTER SETTINGS на уровне сервера. Разрешение ALTER SETTINGS неявным образом предоставлено предопределенным ролям сервера sysadmin и serveradmin .

    В обозревателе объектов щелкните правой кнопкой мыши сервер и выберите пункт Свойства .

    Щелкните узел Дополнительно .

    В поле Максимальная степень параллелизма укажите максимальное число процессоров, которое может быть использовано в плане параллельного выполнения.

Настройка параметра максимальной степени параллелизма

    Установите соединение с компонентом Компонент Database Engine.

    На панели «Стандартная» нажмите Создать запрос .

    Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить . В этом примере описывается использование процедуры для задания значения параметра max degree of parallelism равным 8 .

USE AdventureWorks2012 ; GO EXEC sp_configure "show advanced options" , 1 ; GO RECONFIGURE WITH OVERRIDE; GO EXEC sp_configure "max degree of parallelism" , 8 ; GO RECONFIGURE WITH OVERRIDE; GO

Дополнительные сведения см. в статье

Понравилось? Лайкни нас на Facebook