CREATE WORKLOAD GROUP (Transact-SQL)

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

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

* SQL Server *  

 

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

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

Соглашения о синтаксисе 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 символов. Данный аргумент должен быть уникальным в экземпляре SQL Server и соответствовать правилам для идентификаторов баз данных.

IMPORTANCE = { LOW | MEDIUM | HIGH }

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

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

Примечание.

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

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

REQUEST_MAX_MEMORY_GRANT_PERCENT = value

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

значение — целое число до SQL Server 2017 (14.x), допустимый диапазон — от 1 до 100. Начиная с версии SQL Server 2019 (15.x) значением является тип данных float; допустимый диапазон — от 0 до 100.

Важно!

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

Установка параметра value в значение 0 блокирует выполнение запросов с операциями SORT и HASH JOIN в определяемых пользователем группах рабочей нагрузки.

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

Если требования к памяти запроса превышают ограничение, заданное этим параметром, сервер выполняет следующие действия.

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

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

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

REQUEST_MAX_CPU_TIME_SEC = value

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

Примечание.

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

Важно!

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

REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value

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

Примечание.

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

MAX_DOP = value

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

MAX_DOP обрабатывается следующим образом.

  • Использование MAX_DOP в качестве указания запроса эффективно до тех пор, пока его значение не превышает значения MAX_DOP группы рабочей нагрузки.

  • MAX_DOP в качестве указания запроса всегда переопределяет вызов хранимой процедуры sp_configure 'max degree of parallelism'.

  • Группа рабочей нагрузки MAX_DOP переопределяет вызов хранимой процедуры sp_configure 'max degree of parallelism'.

  • Если запрос помечен как последовательный (MAX_DOP = 1) на стадии компиляции, нельзя изменить его статус на параллельный во время выполнения, независимо от параметров группы рабочей нагрузки или хранимой процедуры sp_configure.

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

Примечание.

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

Совет

Для выполнения этого на уровне запросов используйте MAXDOPуказание запроса. Указание максимальной степени параллелизма в качестве указания запроса эффективно до тех пор, пока его значение не превышает значения MAX_DOP группы рабочей нагрузки. Если значение указания запроса MAXDOP превышает значение, заданное с помощью Resource Governor, ядро СУБД SQL Server использует значение MAX_DOP Resource Governor. Указание запроса MAXDOP всегда переопределяет конфигурацию сервера для максимальной степени параллелизма.

На уровне базы данных используйте MAXDOPконфигурацию области баз данных.

На уровне сервера используйте параметр конфигурации серверамаксимальной степени параллелизма (MAXDOP).

GROUP_MAX_REQUESTS = value

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

USING { pool_name | "default" }

Связывает группу рабочей нагрузки с пулом ресурсов, определяемых пользователем, который идентифицируется по значению pool_name. При этом группа рабочей нагрузки помещается в пул ресурсов. Если значение pool_name не предоставлено либо если не использован аргумент USING, группа рабочей нагрузки помещается в предварительно определенный пул Resource Governor по умолчанию.

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

Примечание.

Все стандартные группы рабочей нагрузки и пулы ресурсов используют имена в нижнем регистре, например «default». Это необходимо учитывать при работе с серверами, где параметры сортировки учитывают регистр символов. Серверы с параметрами сортировки без учета регистра, такие как SQL_Latin1_General_CP1_CI_AS, будут одинаково обрабатывать "default" и "Default".

EXTERNAL external_pool_name | "default"

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

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

  • Пул ресурсов для рабочих нагрузок SQL Server и запросов
  • внешним пулом ресурсов для внешних процессов. Дополнительные сведения см. в разделе sp_execute_external_script (Transact-SQL).

Замечания

При использовании REQUEST_MEMORY_GRANT_PERCENT разрешено создание индексов для использования большего объема памяти рабочей области, чем было предоставлено изначально, в целях повышения производительности. Эта специальная обработка поддерживается Resource Governor в SQL Server. Однако изначально предоставленная память и любая дополнительная выделенная память ограничены пулом ресурсов и настройками группы рабочей нагрузки.

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

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

Создание индексов для секционированной таблицы

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

Разрешения

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

Пример

Создайте группу рабочей нагрузки с именем newReports, для которой используются параметры по умолчанию Resource Governor и которая располагается в пуле по умолчанию Resource Governor. В примере указывается пул default, но это не является обязательным.

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

См. также

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

 

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

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

Соглашения о синтаксисе 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 символов. Данный аргумент должен быть уникальным в экземпляре SQL Server и соответствовать правилам для идентификаторов баз данных.

IMPORTANCE = { LOW | MEDIUM | HIGH }

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

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

Примечание.

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

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

REQUEST_MAX_MEMORY_GRANT_PERCENT = value

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

значение — целое число до SQL Server 2017 (14.x), допустимый диапазон — от 1 до 100. Начиная с версии SQL Server 2019 (15.x) значением является тип данных float; допустимый диапазон — от 0 до 100.

Важно!

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

Установка параметра value в значение 0 блокирует выполнение запросов с операциями SORT и HASH JOIN в определяемых пользователем группах рабочей нагрузки.

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

Если требования к памяти запроса превышают ограничение, заданное этим параметром, сервер выполняет следующие действия.

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

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

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

REQUEST_MAX_CPU_TIME_SEC = value

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

Примечание.

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

Важно!

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

REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value

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

Примечание.

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

MAX_DOP = value

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

MAX_DOP обрабатывается следующим образом.

  • Использование MAX_DOP в качестве указания запроса эффективно до тех пор, пока его значение не превышает значения MAX_DOP группы рабочей нагрузки.

  • MAX_DOP в качестве указания запроса всегда переопределяет вызов хранимой процедуры sp_configure 'max degree of parallelism'.

  • Группа рабочей нагрузки MAX_DOP переопределяет вызов хранимой процедуры sp_configure 'max degree of parallelism'.

  • Если запрос помечен как последовательный (MAX_DOP = 1) на стадии компиляции, нельзя изменить его статус на параллельный во время выполнения, независимо от параметров группы рабочей нагрузки или хранимой процедуры sp_configure.

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

Примечание.

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

Совет

Для выполнения этого на уровне запросов используйте MAXDOPуказание запроса. Указание максимальной степени параллелизма в качестве указания запроса эффективно до тех пор, пока его значение не превышает значения MAX_DOP группы рабочей нагрузки. Если значение указания запроса MAXDOP превышает значение, заданное с помощью Resource Governor, ядро СУБД SQL Server использует значение MAX_DOP Resource Governor. Указание запроса MAXDOP всегда переопределяет конфигурацию сервера для максимальной степени параллелизма.

На уровне базы данных используйте MAXDOPконфигурацию области баз данных.

На уровне сервера используйте параметр конфигурации серверамаксимальной степени параллелизма (MAXDOP).

GROUP_MAX_REQUESTS = value

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

USING { pool_name | "default" }

Связывает группу рабочей нагрузки с пулом ресурсов, определяемых пользователем, который идентифицируется по значению pool_name. При этом группа рабочей нагрузки помещается в пул ресурсов. Если значение pool_name не предоставлено либо если не использован аргумент USING, группа рабочей нагрузки помещается в предварительно определенный пул Resource Governor по умолчанию.

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

Примечание.

Все стандартные группы рабочей нагрузки и пулы ресурсов используют имена в нижнем регистре, например «default». Это необходимо учитывать при работе с серверами, где параметры сортировки учитывают регистр символов. Серверы с параметрами сортировки без учета регистра, такие как SQL_Latin1_General_CP1_CI_AS, будут одинаково обрабатывать "default" и "Default".

EXTERNAL external_pool_name | "default"

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

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

  • Пул ресурсов для рабочих нагрузок SQL Server и запросов
  • внешним пулом ресурсов для внешних процессов. Дополнительные сведения см. в разделе sp_execute_external_script (Transact-SQL).

Замечания

При использовании REQUEST_MEMORY_GRANT_PERCENT разрешено создание индексов для использования большего объема памяти рабочей области, чем было предоставлено изначально, в целях повышения производительности. Эта специальная обработка поддерживается Resource Governor в SQL Server. Однако изначально предоставленная память и любая дополнительная выделенная память ограничены пулом ресурсов и настройками группы рабочей нагрузки.

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

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

Создание индексов для секционированной таблицы

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

Разрешения

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

Пример

Создайте группу рабочей нагрузки с именем newReports, для которой используются параметры по умолчанию Resource Governor и которая располагается в пуле по умолчанию Resource Governor. В примере указывается пул default, но это не является обязательным.

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

См. также

* 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

См. также