Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Группы рабочих нагрузок предоставляют механизм изоляции и хранения системных ресурсов. Кроме того, группы рабочих нагрузок позволяют задавать правила выполнения для запросов, выполняемых в них. Правило выполнения по тайм-ауту запроса позволяет отменять зависшие запросы без вмешательства пользователя. В этой статье объясняется, как взять существующий класс ресурсов и создать группу рабочей нагрузки с аналогичной конфигурацией. Кроме того, добавляется необязательное правило времени ожидания запроса.
Примечание.
Дополнительные сведения об использовании групп рабочих нагрузок и классов ресурсов см. в разделе "Смешивание назначений классов ресурсов с классификаторами " в документе концепции классификации рабочих нагрузок .
Общие сведения о существующей конфигурации класса ресурсов
Для групп рабочей нагрузки требуется параметр, который REQUEST_MIN_RESOURCE_GRANT_PERCENT
определяет процент общих системных ресурсов, выделенных для каждого запроса. Выделение ресурсов выполняется для классов ресурсов путем выделения слотов параллелизма. Чтобы определить значение для параметра REQUEST_MIN_RESOURCE_GRANT_PERCENT
, используйте sys.dm_workload_management_workload_groups_stats DMV. Например, приведенный ниже запрос возвращает значение, которое можно использовать для параметра REQUEST_MIN_RESOURCE_GRANT_PERCENT
, чтобы создать группу рабочей нагрузки, аналогичную статической rc40.
SELECT Request_min_resource_grant_percent = Effective_request_min_resource_grant_percent
FROM sys.dm_workload_management_workload_groups_stats
WHERE name = 'staticrc40'
Примечание.
Группы рабочих нагрузок работают на основе процента общих системных ресурсов.
Так как группы рабочих нагрузок функционируют на основе процента общих системных ресурсов, по мере увеличения и уменьшения масштаба ресурсов процент ресурсов, выделенных статическим классам ресурсов, относительно общих системных ресурсов изменяется. Например, элемент staticrc40 в системе DW1000c выделяет 19.2% из общих системных ресурсов. В системе DW2000c выделено 9,6%. Эта модель подходит, если вы хотите увеличить параллелизм вместо распределения больше ресурсов на каждый запрос.
Создание группы рабочей нагрузки
С помощью известного REQUEST_MIN_RESOURCE_GRANT_PERCENT
синтаксиса CREATE WORKLOAD GROUP можно создать группу рабочей нагрузки. При необходимости можно указать MIN_PERCENTAGE_RESOURCE
, который больше нуля, чтобы изолировать ресурсы для группы рабочих нагрузок. Кроме того, можно также указать CAP_PERCENTAGE_RESOURCE
менее 100, чтобы ограничить объем ресурсов, которые может использовать группа рабочих нагрузок.
Используя mediumrc в качестве основы для примера, приведенный ниже код задает MIN_PERCENTAGE_RESOURCE
для выделения 10% системных ресурсов wgDataLoads
и гарантирует, что один запрос сможет выполняться все время. Кроме того, CAP_PERCENTAGE_RESOURCE
установлено значение 40% и ограничивает эту группу рабочих нагрузок четырьмя параллельными запросами. Установив параметр QUERY_EXECUTION_TIMEOUT_SEC
на значение 3600, вы автоматически отмените любой запрос, который выполняется более 1 часа.
CREATE WORKLOAD GROUP wgDataLoads WITH
( REQUEST_MIN_RESOURCE_GRANT_PERCENT = 10
,MIN_PERCENTAGE_RESOURCE = 10
,CAP_PERCENTAGE_RESOURCE = 40
,QUERY_EXECUTION_TIMEOUT_SEC = 3600)
Создание классификатора
Ранее сопоставление запросов с классами ресурсов было сделано с sp_addrolemember. Чтобы обеспечить те же функциональные возможности и сопоставить запросы с группами рабочих нагрузок, используйте синтаксис CREATE WORKLOAD CLASSIFIER . Используя sp_addrolemember, вы можете сопоставлять ресурсы только с запросом, основанным на имени входа. Классификатор предоставляет дополнительные параметры, кроме входа, например, метка, сеанс, время. Пример ниже назначает запросы от AdfLogin
имени входа, у которых также установлен параметр OPTION LABEL как factloads
, группе рабочей нагрузки wgDataLoads
, созданной выше.
CREATE WORKLOAD CLASSIFIER wcDataLoads WITH
( WORKLOAD_GROUP = 'wgDataLoads'
,MEMBERNAME = 'AdfLogin'
,WLM_LABEL = 'factloads')
Тестирование с использованием примера запроса
Ниже приведен пример запроса и запроса dmV, чтобы убедиться, что группа рабочей нагрузки и классификатор настроены правильно.
SELECT SUSER_SNAME() --should be 'AdfLogin'
--change to a valid table AdfLogin has access to
SELECT TOP 10 *
FROM nation
OPTION (label='factloads')
SELECT request_id, [label], classifier_name, group_name, command
FROM sys.dm_pdw_exec_requests
WHERE [label] = 'factloads'
ORDER BY submit_time DESC