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


ALTER WORKLOAD GROUP (Transact-SQL)

Выбор продукта

В следующей строке выберите интересующее вас имя продукта и отображается только информация о продукте.

* SQL Server *  

управляемого экземпляра SQL

Azure Synapse
аналитики

 

Управляемый экземпляр SQL Server и SQL

Изменяет существующую конфигурацию группы рабочей нагрузки регулятора ресурсов и при необходимости назначает ее другому пулу ресурсов регулятора ресурсов.

Заметка

Для Управляемого экземпляра SQL Azure необходимо быть в контексте базы данных master для изменения конфигурации регулятора ресурсов.

Transact-SQL соглашения о синтаксисе.

Синтаксис

ALTER WORKLOAD GROUP { group_name | [default] }
[ WITH
    ([ IMPORTANCE = { LOW | MEDIUM | HIGH } ]
      [ [ , ] REQUEST_MAX_MEMORY_GRANT_PERCENT = value ]
      [ [ , ] REQUEST_MAX_CPU_TIME_SEC = value ]
      [ [ , ] REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value ]
      [ [ , ] MAX_DOP = value ]
      [ [ , ] GROUP_MAX_REQUESTS = value ] )
]
[ USING { pool_name | [default] } ]
[ ; ]

Аргументы

group_name | [по умолчанию]

Имя существующей определяемой пользователем рабочей нагрузки или встроенного default группы рабочей нагрузки регулятора ресурсов.

default должны находиться в скобках ([]) или кавычках ("") при использовании с ALTER WORKLOAD GROUP, чтобы избежать конфликта с DEFAULT, который является системным зарезервированным словом. Дополнительные сведения см. в разделе Идентификаторы базы данных.

Встроенные пулы ресурсов и группы рабочих нагрузок используют все строчные имена, например default. Используйте нижний регистр default на серверах, использующих параметры сортировки с учетом регистра. Серверы с нечувствительными параметрами сортировки регистра обрабатывают default, Defaultи DEFAULT с тем же значением.

ВАЖНОСТЬ = { LOW | MEDIUM | HIGH }

Указывает относительную важность запроса в группе рабочей нагрузки. Значение по умолчанию — MEDIUM.

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

REQUEST_MAX_MEMORY_GRANT_PERCENT = значение

Указывает максимальный объем памяти рабочей области запроса, которую может принимать один запрос из пула. значение — это процент размера пула ресурсов, определенного MAX_MEMORY_PERCENT. Значение по умолчанию — 25.

В SQL Server 2017 (14.x) и старше значение является целым числом, а допустимый диапазон — от 1 до 100.

Начиная с SQL Server 2019 (15.x), значение может быть дробным с помощью типа данных float. Допустимый диапазон составляет от 0 до 100.

Важный

Указанный объем относится только к памяти рабочей области запроса, полученной с помощью предоставления памяти запроса.

Не рекомендуется задавать значение слишком большой (например, больше 70), так как сервер может не указать достаточно свободного памяти для других одновременных запросов. Это может привести к истечении времени ожидания предоставления памяти ошибке 8645.

Установка значения значением значение 0 или небольшое значение может препятствовать запросам с операторами, требующими памяти рабочей области, например sort и hash, выполняться в определяемых пользователем группах рабочих нагрузок. Если требования к памяти запроса превышают предел, определенный этим параметром, происходит следующее поведение:

  • Для определяемых пользователем групп рабочих нагрузок сервер пытается уменьшить степень параллелизма (DOP) запроса (запроса), пока требование к памяти не подпадает под предел или до тех пор, пока DOP не равен 1. Если требование к памяти запроса по-прежнему больше предела, возникает ошибка 8657, и запрос завершается сбоем.
  • Для групп рабочих нагрузок internal и default сервер разрешает запросу получить необходимую память.

В любом случае ошибка 8645 может возникнуть, если у сервера недостаточно физической памяти.

REQUEST_MAX_CPU_TIME_SEC = значение

Указывает максимальное количество времени ЦП в секундах, которое может использовать запрос. значение должно иметь значение 0 или положительное целое число. Значение по умолчанию для значения равно 0, что означает неограниченное значение.

По умолчанию регулятор ресурсов не предотвращает продолжение запроса, если превышено максимальное время. Однако создается событие. Дополнительные сведения см. в разделе превышение порогового значения ЦП.

Начиная с SQL Server 2016 (13.x) с пакетом обновления 2 (SP2) и SQL Server 2017 (14.x) CU3 и используя флаг трассировки 2422, регулятор ресурсов прерывает запрос при превышении максимального времени ЦП.

REQUEST_MEMORY_GRANT_TIMEOUT_SEC = значение

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

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

MAX_DOP = значение

Задает максимальную степень параллелизма (MAXDOP) для параллельного выполнения запроса. Допустимый диапазон для значения составляет от 0 до 64. Параметр по умолчанию для значения , 0 использует глобальный параметр.

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

GROUP_MAX_REQUESTS = значение

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

USING { pool_name | [по умолчанию] }

Связывает группу рабочей нагрузки с определяемым пользователем пулом ресурсов, определяемым pool_name, или с пулом ресурсов default. Если pool_name не указан или если аргумент USING не указан, группа рабочей нагрузки связана со встроенным пулом default.

default является зарезервированным словом, и при указании в USINGдолжны быть заключены в скобки ([]) или кавычки ("").

Встроенные пулы ресурсов и группы рабочих нагрузок используют все строчные имена, например default. Используйте нижний регистр default на серверах, использующих параметры сортировки с учетом регистра. Серверы с нечувствительными параметрами сортировки регистра обрабатывают default, Defaultи DEFAULT с тем же значением.

Замечания

ALTER WORKLOAD GROUP разрешено в группе рабочей нагрузки default, но не в группе internal.

Изменения конфигурации группы рабочей нагрузки не вступают в силу до тех пор, пока ALTER RESOURCE GOVERNOR RECONFIGURE не будет выполнена.

Дополнительные сведения см. в группе рабочей нагрузки регулятора ресурсов.

MAXDOP

Для данного запроса эффективный MAXDOP определяется следующим образом:

  • MAXDOP как указание запроса учитывается, если он не превышает MAX_DOP группы рабочей нагрузки.
  • MAXDOP как подсказка запроса всегда переопределяет конфигурацию сервера max degree of parallelism. Дополнительные сведения см. в разделе Конфигурация сервера: максимальная степень параллелизма.
  • Группа рабочей нагрузки MAX_DOP переопределяет конфигурацию сервера max degree of parallelism и конфигурацию MAXDOPбазы данных,.

Ограничение MAXDOP устанавливается на задачи. Это не запрос или ограничение на запрос. Во время выполнения параллельного запроса один запрос может создать несколько задач, назначенных планировщику . Дополнительные сведения см. в руководстве по архитектуре потоков и задач.

Если запрос помечается как последовательный во время компиляции (MAXDOP = 1), он не может выполняться с параллелизмом во время выполнения независимо от группы рабочей нагрузки или параметра конфигурации сервера. После определения MAXDOP для запроса его можно уменьшить только из-за нехватки памяти. Перенастройка группы рабочей нагрузки не влияет на запросы, ожидающие в очереди предоставления памяти.

Кэшированные планы

При изменении плана, влияющего на настройку, например MAX_DOP, новый параметр вступает в силу только после выполнения DBCC FREEPROCCACHE (<pool_name>), где <pool_name> — это имя пула ресурсов регулятора ресурсов, используемого текущей группой рабочей нагрузки.

  • При изменении MAX_DOP на 1 выполнение DBCC FREEPROCCACHE не требуется, так как параллельные планы могут выполняться в последовательном режиме. Однако такой план может быть менее эффективным, чем план, скомпилированный как последовательный план.
  • Если изменение MAX_DOP от 1 до 0 или значение больше 1, выполнение DBCC FREEPROCCACHE не требуется. Однако последовательные планы не могут выполняться параллельно, поэтому очистка соответствующего кэша позволяет скомпилировать новые планы потенциально с помощью параллелизма.

Предупреждение

Очистка кэшированных планов из пула ресурсов, связанного с несколькими группами рабочих нагрузок, влияет на все группы рабочих нагрузок с помощью определяемого пользователем пула ресурсов, определяемого <pool_name>.

Создание индекса

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

Память, потребляемая для создания неуклюжимого индекса в секционированной таблице, пропорциональна количеству участвующих секций. Если общий объем требуемой памяти превышает ограничение на запрос, примененное параметром группы рабочей нагрузки REQUEST_MAX_MEMORY_GRANT_PERCENT, создание индекса может завершиться ошибкой. Так как группа рабочих нагрузок default позволяет запросу превышать ограничение на запрос с минимальной требуемой памятью для начала обратной совместимости, вы можете создать тот же индекс, используя группу рабочих нагрузок default, если пул ресурсов default имеет достаточно общего объема памяти.

Разрешения

Требуется разрешение CONTROL SERVER.

Примеры

В следующем примере показано, как изменить важность запросов в группе по умолчанию с MEDIUM на LOW.

ALTER WORKLOAD GROUP [default]
WITH (IMPORTANCE = LOW);

ALTER RESOURCE GOVERNOR RECONFIGURE;

В следующем примере показано, как переместить группу рабочей нагрузки из пула, в настоящее время в пул default.

ALTER WORKLOAD GROUP adHoc
USING [default];

ALTER RESOURCE GOVERNOR RECONFIGURE;

* Управляемый экземпляр SQL *  

Azure Synapse
аналитики

 

Управляемый экземпляр SQL Server и SQL

Изменяет существующую конфигурацию группы рабочей нагрузки регулятора ресурсов и при необходимости назначает ее другому пулу ресурсов регулятора ресурсов.

Заметка

Для Управляемого экземпляра SQL Azure необходимо быть в контексте базы данных master для изменения конфигурации регулятора ресурсов.

Transact-SQL соглашения о синтаксисе.

Синтаксис

ALTER WORKLOAD GROUP { group_name | [default] }
[ WITH
    ([ IMPORTANCE = { LOW | MEDIUM | HIGH } ]
      [ [ , ] REQUEST_MAX_MEMORY_GRANT_PERCENT = value ]
      [ [ , ] REQUEST_MAX_CPU_TIME_SEC = value ]
      [ [ , ] REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value ]
      [ [ , ] MAX_DOP = value ]
      [ [ , ] GROUP_MAX_REQUESTS = value ] )
]
[ USING { pool_name | [default] } ]
[ ; ]

Аргументы

group_name | [по умолчанию]

Имя существующей определяемой пользователем рабочей нагрузки или встроенного default группы рабочей нагрузки регулятора ресурсов.

default должны находиться в скобках ([]) или кавычках ("") при использовании с ALTER WORKLOAD GROUP, чтобы избежать конфликта с DEFAULT, который является системным зарезервированным словом. Дополнительные сведения см. в разделе Идентификаторы базы данных.

Встроенные пулы ресурсов и группы рабочих нагрузок используют все строчные имена, например default. Используйте нижний регистр default на серверах, использующих параметры сортировки с учетом регистра. Серверы с нечувствительными параметрами сортировки регистра обрабатывают default, Defaultи DEFAULT с тем же значением.

ВАЖНОСТЬ = { LOW | MEDIUM | HIGH }

Указывает относительную важность запроса в группе рабочей нагрузки. Значение по умолчанию — MEDIUM.

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

REQUEST_MAX_MEMORY_GRANT_PERCENT = значение

Указывает максимальный объем памяти рабочей области запроса, которую может принимать один запрос из пула. значение — это процент размера пула ресурсов, определенного MAX_MEMORY_PERCENT. Значение по умолчанию — 25.

В SQL Server 2017 (14.x) и старше значение является целым числом, а допустимый диапазон — от 1 до 100.

Начиная с SQL Server 2019 (15.x), значение может быть дробным с помощью типа данных float. Допустимый диапазон составляет от 0 до 100.

Важный

Указанный объем относится только к памяти рабочей области запроса, полученной с помощью предоставления памяти запроса.

Не рекомендуется задавать значение слишком большой (например, больше 70), так как сервер может не указать достаточно свободного памяти для других одновременных запросов. Это может привести к истечении времени ожидания предоставления памяти ошибке 8645.

Установка значения значением значение 0 или небольшое значение может препятствовать запросам с операторами, требующими памяти рабочей области, например sort и hash, выполняться в определяемых пользователем группах рабочих нагрузок. Если требования к памяти запроса превышают предел, определенный этим параметром, происходит следующее поведение:

  • Для определяемых пользователем групп рабочих нагрузок сервер пытается уменьшить степень параллелизма (DOP) запроса (запроса), пока требование к памяти не подпадает под предел или до тех пор, пока DOP не равен 1. Если требование к памяти запроса по-прежнему больше предела, возникает ошибка 8657, и запрос завершается сбоем.
  • Для групп рабочих нагрузок internal и default сервер разрешает запросу получить необходимую память.

В любом случае ошибка 8645 может возникнуть, если у сервера недостаточно физической памяти.

REQUEST_MAX_CPU_TIME_SEC = значение

Указывает максимальное количество времени ЦП в секундах, которое может использовать запрос. значение должно иметь значение 0 или положительное целое число. Значение по умолчанию для значения равно 0, что означает неограниченное значение.

По умолчанию регулятор ресурсов не предотвращает продолжение запроса, если превышено максимальное время. Однако создается событие. Дополнительные сведения см. в разделе превышение порогового значения ЦП.

Начиная с SQL Server 2016 (13.x) с пакетом обновления 2 (SP2) и SQL Server 2017 (14.x) CU3 и используя флаг трассировки 2422, регулятор ресурсов прерывает запрос при превышении максимального времени ЦП.

REQUEST_MEMORY_GRANT_TIMEOUT_SEC = значение

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

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

MAX_DOP = значение

Задает максимальную степень параллелизма (MAXDOP) для параллельного выполнения запроса. Допустимый диапазон для значения составляет от 0 до 64. Параметр по умолчанию для значения , 0 использует глобальный параметр.

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

GROUP_MAX_REQUESTS = значение

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

USING { pool_name | [по умолчанию] }

Связывает группу рабочей нагрузки с определяемым пользователем пулом ресурсов, определяемым pool_name, или с пулом ресурсов default. Если pool_name не указан или если аргумент USING не указан, группа рабочей нагрузки связана со встроенным пулом default.

default является зарезервированным словом, и при указании в USINGдолжны быть заключены в скобки ([]) или кавычки ("").

Встроенные пулы ресурсов и группы рабочих нагрузок используют все строчные имена, например default. Используйте нижний регистр default на серверах, использующих параметры сортировки с учетом регистра. Серверы с нечувствительными параметрами сортировки регистра обрабатывают default, Defaultи DEFAULT с тем же значением.

Замечания

ALTER WORKLOAD GROUP разрешено в группе рабочей нагрузки default, но не в группе internal.

Изменения конфигурации группы рабочей нагрузки не вступают в силу до тех пор, пока ALTER RESOURCE GOVERNOR RECONFIGURE не будет выполнена.

Дополнительные сведения см. в группе рабочей нагрузки регулятора ресурсов.

MAXDOP

Для данного запроса эффективный MAXDOP определяется следующим образом:

  • MAXDOP как указание запроса учитывается, если он не превышает MAX_DOP группы рабочей нагрузки.
  • MAXDOP как подсказка запроса всегда переопределяет конфигурацию сервера max degree of parallelism. Дополнительные сведения см. в разделе Конфигурация сервера: максимальная степень параллелизма.
  • Группа рабочей нагрузки MAX_DOP переопределяет конфигурацию сервера max degree of parallelism и конфигурацию MAXDOPбазы данных,.

Ограничение MAXDOP устанавливается на задачи. Это не запрос или ограничение на запрос. Во время выполнения параллельного запроса один запрос может создать несколько задач, назначенных планировщику . Дополнительные сведения см. в руководстве по архитектуре потоков и задач.

Если запрос помечается как последовательный во время компиляции (MAXDOP = 1), он не может выполняться с параллелизмом во время выполнения независимо от группы рабочей нагрузки или параметра конфигурации сервера. После определения MAXDOP для запроса его можно уменьшить только из-за нехватки памяти. Перенастройка группы рабочей нагрузки не влияет на запросы, ожидающие в очереди предоставления памяти.

Кэшированные планы

При изменении плана, влияющего на настройку, например MAX_DOP, новый параметр вступает в силу только после выполнения DBCC FREEPROCCACHE (<pool_name>), где <pool_name> — это имя пула ресурсов регулятора ресурсов, используемого текущей группой рабочей нагрузки.

  • При изменении MAX_DOP на 1 выполнение DBCC FREEPROCCACHE не требуется, так как параллельные планы могут выполняться в последовательном режиме. Однако такой план может быть менее эффективным, чем план, скомпилированный как последовательный план.
  • Если изменение MAX_DOP от 1 до 0 или значение больше 1, выполнение DBCC FREEPROCCACHE не требуется. Однако последовательные планы не могут выполняться параллельно, поэтому очистка соответствующего кэша позволяет скомпилировать новые планы потенциально с помощью параллелизма.

Предупреждение

Очистка кэшированных планов из пула ресурсов, связанного с несколькими группами рабочих нагрузок, влияет на все группы рабочих нагрузок с помощью определяемого пользователем пула ресурсов, определяемого <pool_name>.

Создание индекса

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

Память, потребляемая для создания неуклюжимого индекса в секционированной таблице, пропорциональна количеству участвующих секций. Если общий объем требуемой памяти превышает ограничение на запрос, примененное параметром группы рабочей нагрузки REQUEST_MAX_MEMORY_GRANT_PERCENT, создание индекса может завершиться ошибкой. Так как группа рабочих нагрузок default позволяет запросу превышать ограничение на запрос с минимальной требуемой памятью для начала обратной совместимости, вы можете создать тот же индекс, используя группу рабочих нагрузок default, если пул ресурсов default имеет достаточно общего объема памяти.

Разрешения

Требуется разрешение CONTROL SERVER.

Примеры

В следующем примере показано, как изменить важность запросов в группе по умолчанию с MEDIUM на LOW.

ALTER WORKLOAD GROUP [default]
WITH (IMPORTANCE = LOW);

ALTER RESOURCE GOVERNOR RECONFIGURE;

В следующем примере показано, как переместить группу рабочей нагрузки из пула, в настоящее время в пул default.

ALTER WORKLOAD GROUP adHoc
USING [default];

ALTER RESOURCE GOVERNOR RECONFIGURE;

управляемого экземпляра SQL

* Azure Synapse
Аналитика *
 

 

Azure Synapse Analytics

Изменяет существующую группу рабочей нагрузки.

Дополнительные сведения о том, как ALTER WORKLOAD GROUP ведет себя в системе с выполнением и очередными запросами, см. в разделе ALTER WORKLOAD GROUP поведения.

Ограничения для CREATE WORKLOAD GROUP также применяются к ALTER WORKLOAD GROUP. Перед изменением параметров запрос sys.workload_management_workload_groups, чтобы убедиться, что значения находятся в допустимых диапазонах.

Синтаксис

ALTER WORKLOAD GROUP group_name
WITH
([ MIN_PERCENTAGE_RESOURCE = value ]
  [ [ , ] CAP_PERCENTAGE_RESOURCE = value ]
  [ [ , ] REQUEST_MIN_RESOURCE_GRANT_PERCENT = value ]
  [ [ , ] REQUEST_MAX_RESOURCE_GRANT_PERCENT = value ]
  [ [ , ] IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH }]
  [ [ , ] QUERY_EXECUTION_TIMEOUT_SEC = value ] )
  [ ; ]

Аргументы

group_name

Имя существующей определяемой пользователем группы рабочей нагрузки. group_name не изменяется.

MIN_PERCENTAGE_RESOURCE = значение

значение — это целочисленный диапазон от 0 до 100. При изменении MIN_PERCENTAGE_RESOURCE сумма MIN_PERCENTAGE_RESOURCE для всех групп рабочих нагрузок не может превышать 100. Для изменения MIN_PERCENTAGE_RESOURCE требуется выполнение всех выполняемых запросов в группе рабочей нагрузки до завершения команды. Дополнительные сведения см. в разделе поведение ALTER WORKLOAD GROUP в этой статье.

CAP_PERCENTAGE_RESOURCE = значение

значение — это целочисленный диапазон от 1 до 100. Значение CAP_PERCENTAGE_RESOURCE должно быть больше MIN_PERCENTAGE_RESOURCE. Для изменения CAP_PERCENTAGE_RESOURCE требуется, чтобы все выполняемые запросы выполнялись в группе рабочих нагрузок, прежде чем команда завершится. Дополнительные сведения см. в разделе поведение ALTER WORKLOAD GROUP в этой статье.

REQUEST_MIN_RESOURCE_GRANT_PERCENT = значение

значение — это десятичное значение с диапазоном от 0,75 до 100,00. Значение REQUEST_MIN_RESOURCE_GRANT_PERCENT должно быть фактором MIN_PERCENTAGE_RESOURCE и меньше CAP_PERCENTAGE_RESOURCE.

REQUEST_MAX_RESOURCE_GRANT_PERCENT = значение

значение равно десятичному и должно быть больше REQUEST_MIN_RESOURCE_GRANT_PERCENT.

ВАЖНОСТЬ = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH }

Изменяет значение по умолчанию запроса для группы рабочей нагрузки.

QUERY_EXECUTION_TIMEOUT_SEC = значение

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

Разрешения

Требуется разрешение CONTROL DATABASE.

Пример

В приведенном ниже примере проверяются значения в представлении каталога для группы рабочей нагрузки с именем wgDataLoadsи изменяются значения.

SELECT *
FROM sys.workload_management_workload_groups
WHERE [name] = 'wgDataLoads'

ALTER WORKLOAD GROUP wgDataLoads WITH
( MIN_PERCENTAGE_RESOURCE            = 40
, CAP_PERCENTAGE_RESOURCE            = 80
, REQUEST_MIN_RESOURCE_GRANT_PERCENT = 10 )

Поведение ALTER WORKLOAD GROUP

В любой момент времени в системе есть три типа запросов:

  • Запросы, которые еще не были классифицированы.
  • Запросы, классифицируемые и ожидающие блокировки объектов или системные ресурсы.
  • Запросы, которые классифицируются и выполняются.

В зависимости от свойств изменяемой группы рабочей нагрузки время действия параметров будет отличаться.

Важность или query_execution_timeout

Для важности и query_execution_timeout свойств неклассифицированные запросы собирают новые значения конфигурации. Ожидание и выполнение запросов выполняется со старой конфигурацией. Запрос ALTER WORKLOAD GROUP выполняется немедленно независимо от наличия запросов в группе рабочей нагрузки.

REQUEST_MIN_RESOURCE_GRANT_PERCENT или REQUEST_MAX_RESOURCE_GRANT_PERCENT

Для REQUEST_MIN_RESOURCE_GRANT_PERCENT и REQUEST_MAX_RESOURCE_GRANT_PERCENT выполнение запросов выполняется со старой конфигурацией. Ожидающие запросы и неклассифицированные запросы собирают новые значения конфигурации. Запрос ALTER WORKLOAD GROUP выполняется немедленно независимо от наличия запросов в группе рабочей нагрузки.

MIN_PERCENTAGE_RESOURCE или CAP_PERCENTAGE_RESOURCE

Для MIN_PERCENTAGE_RESOURCE и CAP_PERCENTAGE_RESOURCE выполнение запросов выполняется со старой конфигурацией. Ожидающие запросы и неклассифицированные запросы собирают новые значения конфигурации.

Изменение MIN_PERCENTAGE_RESOURCE и CAP_PERCENTAGE_RESOURCE требует очистки выполняемых запросов в группе рабочей нагрузки, которая изменяется. При уменьшении MIN_PERCENTAGE_RESOURCE освобожденные ресурсы возвращаются в пул общих ресурсов, позволяя запросам из других групп рабочих нагрузок использовать возможность использования. И наоборот, увеличение MIN_PERCENTAGE_RESOURCE будет ожидать завершения запросов, использующих только необходимые ресурсы из общего пула. Операция ALTER WORKLOAD GROUP будет иметь приоритетный доступ к общим ресурсам по сравнению с другими запросами, ожидающих выполнения в общем пуле. Если сумма MIN_PERCENTAGE_RESOURCE превышает 100%, запрос ALTER WORKLOAD GROUP немедленно завершается ошибкой.

Поведение блокировки

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

См. также