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


CREATE WORKLOAD GROUP (Transact-SQL)

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

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

* SQL Server *  

 

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

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

Регулятор ресурсов недоступен в каждом выпуске SQL Server. Список функций, поддерживаемых выпусками SQL Server, см. в выпусках и поддерживаемых функциях SQL Server 2022.

Примечание.

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

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

Синтаксис

CREATE WORKLOAD GROUP group_name
[ 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] ]
    [ [ , ] EXTERNAL external_pool_name | [default] ]
    } ]
[ ; ]

Аргументы

group_name

Определяемое пользователем имя группы рабочей нагрузки. group_name является буквенно-цифровым, может быть до 128 символов, должен быть уникальным в экземпляре ядра СУБД и должен соответствовать правилам для идентификаторов баз данных.

IMPORTANCE = { LOW | MEDIUM | HIGH }

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

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

REQUEST_MAX_MEMORY_GRANT_PERCENT = value

Указывает максимальный объем памяти рабочей области запроса, которую может принимать один запрос из пула. значение — это процент размера пула ресурсов, определенного 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 = value

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

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

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

REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value

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

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

MAX_DOP = value

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

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

GROUP_MAX_REQUESTS = value

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

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

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

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

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

ВНЕШНИЕ external_pool_name | [по умолчанию]

Область применения: SQL Server 2016 (13.x) и более поздних версий.

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

  • Пул ресурсов для рабочих нагрузок ядра СУБД.
  • внешним пулом ресурсов для внешних процессов. Дополнительные сведения см. в разделе sp_execute_external_script.

Замечания

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

MAXDOP

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

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

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

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

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

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

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

Разрешения

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

Пример

Создает группу рабочей нагрузки с именем newReports в пуле ресурсов default и ограничивает максимальное количество ресурсов памяти, максимальное время ЦП для запроса и MAXDOP.

CREATE WORKLOAD GROUP newReports
WITH (
     REQUEST_MAX_MEMORY_GRANT_PERCENT = 2.5,
     REQUEST_MAX_CPU_TIME_SEC = 100,
     MAX_DOP = 4
     )
USING [default];

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

 

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

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

Регулятор ресурсов недоступен в каждом выпуске SQL Server. Список функций, поддерживаемых выпусками SQL Server, см. в выпусках и поддерживаемых функциях SQL Server 2022.

Примечание.

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

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

Синтаксис

CREATE WORKLOAD GROUP group_name
[ 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] ]
    [ [ , ] EXTERNAL external_pool_name | [default] ]
    } ]
[ ; ]

Аргументы

group_name

Определяемое пользователем имя группы рабочей нагрузки. group_name является буквенно-цифровым, может быть до 128 символов, должен быть уникальным в экземпляре ядра СУБД и должен соответствовать правилам для идентификаторов баз данных.

IMPORTANCE = { LOW | MEDIUM | HIGH }

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

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

REQUEST_MAX_MEMORY_GRANT_PERCENT = value

Указывает максимальный объем памяти рабочей области запроса, которую может принимать один запрос из пула. значение — это процент размера пула ресурсов, определенного 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 = value

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

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

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

REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value

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

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

MAX_DOP = value

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

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

GROUP_MAX_REQUESTS = value

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

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

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

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

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

ВНЕШНИЕ external_pool_name | [по умолчанию]

Область применения: SQL Server 2016 (13.x) и более поздних версий.

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

  • Пул ресурсов для рабочих нагрузок ядра СУБД.
  • внешним пулом ресурсов для внешних процессов. Дополнительные сведения см. в разделе sp_execute_external_script.

Замечания

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

MAXDOP

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

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

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

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

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

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

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

Разрешения

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

Пример

Создает группу рабочей нагрузки с именем newReports в пуле ресурсов default и ограничивает максимальное количество ресурсов памяти, максимальное время ЦП для запроса и MAXDOP.

CREATE WORKLOAD GROUP newReports
WITH (
     REQUEST_MAX_MEMORY_GRANT_PERCENT = 2.5,
     REQUEST_MAX_CPU_TIME_SEC = 100,
     MAX_DOP = 4
     )
USING [default];

* Azure Synapse
Analytics *
 

 

Azure Synapse Analytics

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

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

CREATE 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 имеет тип sysname. Оно может иметь длину до 128 символов и должно быть уникальным в пределах экземпляра.

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

CAP_PERCENTAGE_RESOURCE = значение
Указывает максимальное использование ресурсов для всех запросов в группе рабочей нагрузки. Ресурсы ЦП и памяти ограничиваются этим параметром. Диапазон допустимых целых значений для value — от 1 до 100. Значение cap_percentage_resource не может превышать значение min_percentage_resource. Действующее значение для cap_percentage_resource можно уменьшить, если min_percentage_resource настраивается со значением больше нуля в других группах рабочей нагрузки.

REQUEST_MIN_RESOURCE_GRANT_PERCENT = значение
Определяет минимальный объем ресурсов, выделяемых для запроса. Память — это единственный ресурс, который регулируется этим параметром. value является обязательным параметром с диапазоном десятичных значений от 0,75 до 100,00. Значение request_min_resource_grant_percent должно делиться на 0,25, быть кратно min_percentage_resource и быть меньше cap_percentage_resource. Для каждого уровня обслуживания предусмотрены минимальные действующие значения. Дополнительные сведения см. в разделе о действующих значениях.

Например:

CREATE WORKLOAD GROUP wgSample 
WITH
  ( MIN_PERCENTAGE_RESOURCE = 26                -- integer value
    , REQUEST_MIN_RESOURCE_GRANT_PERCENT = 3.25 -- factor of 26 (guaranteed a minimum of 8 concurrency)
    , CAP_PERCENTAGE_RESOURCE = 100 )

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

Класс ресурсов Процент ресурсов
Smallrc %3
Mediumrc 10%
Largerc 22 %
Xlargerc 70 %

REQUEST_MAX_RESOURCE_GRANT_PERCENT = значение

Задает максимальный объем ресурсов, выделяемых для каждого запроса. Память — это единственный ресурс, который регулируется этим параметром. value — это необязательный десятичный параметр со значением по умолчанию, равным значению request_min_resource_grant_percent. Значение value должно быть больше или равно значению request_min_resource_grant_percent. Если значение request_max_resource_grant_percent больше значения request_min_resource_grant_percent и доступны системные ресурсы, для запроса выделяются дополнительные ресурсы.

IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH }

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

  • Низкое
  • BELOW_NORMAL
  • NORMAL (по умолчанию)
  • ABOVE_NORMAL
  • ВЫСОКИЙ УРОВЕНЬ

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

QUERY_EXECUTION_TIMEOUT_SEC = значение

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

Замечания

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

Если группа рабочей нагрузки создается со значением min_percentage_resource больше нуля, инструкция CREATE WORKLOAD GROUP будет находиться в очереди до тех пор, пока не появится достаточно ресурсов для создания группы рабочей нагрузки.

Действующие значения

Параметры min_percentage_resource, cap_percentage_resource, request_min_resource_grant_percent и request_max_resource_grant_percent имеют действующие значения, которые корректируются в контексте текущего уровня обслуживания и конфигурации других групп рабочей нагрузки.

Параметр request_min_resource_grant_percent имеет действующее значение, так как в зависимости от уровня обслуживания каждый запрос требует наличия минимальных ресурсов. Например, на самом низком уровне обслуживания DW100c требуется минимум 25 % ресурсов на запрос. Если в группе рабочей нагрузки для request_min_resource_grant_percent и request_max_resource_grant_percent настроено значение 3 %, действующие значения для обоих параметров корректируются на значение 25 % при запуске экземпляра. Если экземпляр масштабируется до DW1000c, настроенные и действующие значения обоих параметров будут иметь значение 3 %, так как это минимальное поддерживаемое значение на таком уровне обслуживания. Если экземпляр масштабируется выше DW1000c, для настроенных и действующих значений обоих параметров сохранится значение 3 %. Дополнительные сведения о действующих значениях на разных уровнях обслуживания см. в таблице ниже.

Уровень обслуживания Наименьшее действительное значение для REQUEST_MIN_RESOURCE_GRANT_PERCENT Максимальное число одновременных запросов
DW100c 25% 4
DW200c 12,5 % 8
DW300c %8 12
DW400c 6,25% 16
DW500c. 5% 20
DW1000c %3 32
DW1500c %3 32
DW2000c 2% 48
DW2500c 2% 48
DW3000c 1,5 % 64
DW5000c 1,5 % 64
DW6000c 0,75 % 128
DW7500c 0,75 % 128
DW10000c 0,75 % 128
DW15000c 0,75 % 128
DW30000c 0,75 % 128

Значение параметра min_percentage_resource должно быть больше действующего значения request_min_resource_grant_percent или равно ему. Группа рабочей нагрузки с настроенным значением min_percentage_resource, которое меньше действующего значения min_percentage_resource, имеет значение, скорректированное во время выполнения до нуля. В этом случае ресурсы, настроенные для min_percentage_resource, будут общими для всех групп рабочей нагрузки. Например, группа рабочей нагрузки wgAdHoc со значением min_percentage_resource, равным 10 %, которая выполняется на уровне обслуживания DW1000c, будет иметь действующее значение min_percentage_resource, равное 10 % (3 % — это минимальное поддерживаемое значение на уровне DW1000c). wgAdhoc на уровне обслуживания DW100c получит действующее значение min_percentage_resource, равное 0 %. Значение 10 %, настроенное для wgAdhoc, будет общим для всех групп рабочей нагрузки.

Параметр cap_percentage_resource также имеет действующее значение. Если группа рабочей нагрузки wgAdhoc настроена со значением cap_percentage_resource, равным 100 %, а другая группа рабочей нагрузки, wgDashboards, создается с равным 25 % значением min_percentage_resource, действующее значение cap_percentage_resource для wgAdhoc составит 75 %.

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

Разрешения

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

См. также