Compartilhar via


Converter classes de recursos em grupos de cargas de trabalho

Grupos de carga de trabalho fornecem um mecanismo para isolar e conter recursos do sistema. Além disso, os grupos de carga de trabalho permitem definir regras de execução para as solicitações em execução nelas. Uma regra de execução de tempo limite de consulta permite que consultas sem controle sejam canceladas sem intervenção do usuário. Este artigo explica como usar uma classe de recurso existente e criar um grupo de carga de trabalho com uma configuração semelhante. Além disso, uma regra de tempo limite de consulta opcional é adicionada.

Observação

Consulte a seção Misturar atribuições de classe de recurso com classificadores no documento de conceito Classificação de carga de trabalho para obter orientação sobre como usar grupos de carga de trabalho e classes de recursos ao mesmo tempo.

Reconhecimento da configuração da classe de recurso existente

Os grupos de carga de trabalho exigem um parâmetro chamado REQUEST_MIN_RESOURCE_GRANT_PERCENT que especifica a porcentagem de recursos gerais do sistema alocados por solicitação. A alocação de recurso é feita para classes de recursos alocando slots de simultaneidade. Para determinar o valor a ser especificado para REQUEST_MIN_RESOURCE_GRANT_PERCENT, use o DMV sys.dm_workload_management_workload_groups_stats. Por exemplo, a consulta abaixo retorna um valor que pode ser usado para o parâmetro REQUEST_MIN_RESOURCE_GRANT_PERCENT para criar um grupo de carga de trabalho semelhante a staticrc40.

SELECT Request_min_resource_grant_percent = Effective_request_min_resource_grant_percent
  FROM sys.dm_workload_management_workload_groups_stats
  WHERE name = 'staticrc40'

Observação

Os grupos de carga de trabalho operam com base na porcentagem de recursos gerais do sistema.

Como os grupos de carga de trabalho operam com base na porcentagem de recursos gerais do sistema, à medida que você escala e reduz verticalmente, a porcentagem de recursos alocados para classes de recursos estáticos em relação aos recursos gerais do sistema muda. Por exemplo, staticrc40 em DW1000c aloca 19,2% dos recursos gerais do sistema. Em DW2000c, 9,6% são alocados. Esse modelo é semelhante se você quiser escalar verticalmente para simultaneidade em vez de alocar mais recursos por solicitação.

Criar grupo de carga de trabalho

Com o REQUEST_MIN_RESOURCE_GRANT_PERCENT conhecido, use a sintaxe CREATE WORKLOAD GROUP para criar o grupo de carga de trabalho. Opcionalmente, é possível especificar um MIN_PERCENTAGE_RESOURCE maior que zero para isolar recursos para o grupo de carga de trabalho. Além disso, você tem a opção de especificar CAP_PERCENTAGE_RESOURCE menor que 100 para limitar a quantidade de recursos que o grupo de carga de trabalho pode consumir.

Usando o mediumrc como exemplo, o código abaixo define o MIN_PERCENTAGE_RESOURCE para dedicar 10% dos recursos do sistema para wgDataLoads e garante que uma consulta poderá ser executada todas as vezes. Além disso, CAP_PERCENTAGE_RESOURCE está definido como 40% e limita esse grupo de carga de trabalho a quatro solicitações simultâneas. Ao definir o parâmetro QUERY_EXECUTION_TIMEOUT_SEC como 3600, qualquer consulta executada por mais de 1 hora será cancelada automaticamente.

CREATE WORKLOAD GROUP wgDataLoads WITH  
( REQUEST_MIN_RESOURCE_GRANT_PERCENT = 10
 ,MIN_PERCENTAGE_RESOURCE = 10
 ,CAP_PERCENTAGE_RESOURCE = 40
 ,QUERY_EXECUTION_TIMEOUT_SEC = 3600)

Crie o classificador

Anteriormente, o mapeamento de consultas para classes de recursos era feito com sp_addrolemember. Para obter a mesma funcionalidade e mapear solicitações para grupos de carga de trabalho, use a sintaxe CREATE WORKLOAD CLASSIFIER. O uso de sp_addrolemember só permitia mapear recursos para uma solicitação com base em um logon. Um classificador fornece opções adicionais além do logon, por exemplo:- label - session - time O exemplo abaixo atribui consultas do logon AdfLogin que também têm OPTION LABEL definido como factloads para o grupo de carga de trabalho wgDataLoads criado acima.

CREATE WORKLOAD CLASSIFIER wcDataLoads WITH  
( WORKLOAD_GROUP = 'wgDataLoads'
 ,MEMBERNAME = 'AdfLogin'
 ,WLM_LABEL = 'factloads')

Teste com uma consulta de amostra

Veja abaixo uma consulta de amostra e uma consulta DMV para garantir que o grupo de carga de trabalho e o classificador estejam configurados corretamente.

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

Próximas etapas