Partilhar via


GRUPO DE CARGA DE TRABALHO ALTER (Transact-SQL)

Selecione um produto

Na linha seguinte, selecione o nome do produto em que está interessado e apenas as informações desse produto são apresentadas.

* SQL Server *  

de instância gerenciada SQL

 

SQL Server e instância gerenciada do SQL

Altera uma configuração de grupo de carga de trabalho do administrador de recursos existente e, opcionalmente, atribui-a a um pool de recursos diferente do administrador de recursos.

Observação

Para a Instância Gerenciada SQL do Azure, você deve estar no contexto do banco de dados master para modificar a configuração do administrador de recursos.

Transact-SQL convenções de sintaxe.

Sintaxe

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] } ]
[ ; ]

Argumentos

group_name | [padrão]

O nome de um grupo de carga de trabalho definido pelo usuário existente ou o grupo de carga de trabalho interno do administrador de recursos default.

default deve estar entre parênteses ([]) ou aspas ("") quando usado com ALTER WORKLOAD GROUP para evitar um conflito com DEFAULT, que é uma palavra reservada do sistema. Para obter mais informações, consulte Identificadores de banco de dados.

Pools de recursos internos e grupos de carga de trabalho usam todos os nomes minúsculos, como default. Use a default minúscula em servidores que usam um agrupamento que diferencia maiúsculas de minúsculas. Os servidores com agrupamento que não diferencia maiúsculas de minúsculas tratam default, Defaulte DEFAULT como o mesmo valor.

IMPORTÂNCIA = { BAIXA | MÉDIO | ALTO }

Especifica a importância relativa de uma solicitação no grupo de carga de trabalho. O valor padrão é MEDIUM.

IMPORTANCE é local para o pool de recursos que contém o grupo de carga de trabalho. Grupos de carga de trabalho de importância diferente dentro do mesmo pool de recursos afetam uns aos outros, mas não afetam grupos de carga de trabalho em outros pools de recursos.

REQUEST_MAX_MEMORY_GRANT_PERCENT = valor

Especifica a quantidade máxima de memória do espaço de trabalho de consulta que uma única solicitação pode retirar do pool. valor é uma porcentagem do tamanho do pool de recursos definido por MAX_MEMORY_PERCENT. O valor padrão é 25.

No SQL Server 2017 (14.x) e versões anteriores, valor é um inteiro e o intervalo permitido é de 1 a 100.

A partir do SQL Server 2019 (15.x), o valor pode ser fracionário usando o tipo de dados float. O intervalo permitido é de 0 a 100.

Importante

A quantidade especificada refere-se apenas à memória do espaço de trabalho de consulta obtida por meio de concessões de memória de consulta.

Não é recomendável definir valor muito grande (por exemplo, maior que 70) porque o servidor pode não conseguir reservar memória livre suficiente para outras consultas simultâneas. Isso pode levar a um tempo limite de concessão de memória erro 8645.

Definir valor como 0 ou um valor pequeno pode impedir que consultas com operadores que exigem memória de espaço de trabalho, como sort e hash, sejam executadas em grupos de carga de trabalho definidos pelo usuário. Se os requisitos de memória de consulta excederem o limite definido por esse parâmetro, ocorrerá o seguinte comportamento:

  • Para grupos de carga de trabalho definidos pelo usuário, o servidor tenta reduzir o grau de paralelismo (DOP) da solicitação (consulta) até que o requisito de memória fique abaixo do limite ou até que DOP seja igual a 1. Se o requisito de memória de consulta ainda for maior do que o limite, o erro 8657 ocorrerá e a consulta falhará.
  • Para os grupos de carga de trabalho internal e default, o servidor permite que a consulta obtenha a memória necessária.

Em ambos os casos, erro 8645 pode ocorrer se o servidor tiver memória física insuficiente.

REQUEST_MAX_CPU_TIME_SEC = valor

Especifica a quantidade máxima de tempo de CPU, em segundos, que uma solicitação pode usar. valor deve ser 0 ou um número inteiro positivo. A configuração padrão para valor é 0, o que significa ilimitado.

Por padrão, o administrador de recursos não impede que uma solicitação continue se o tempo máximo for excedido. No entanto, um evento é gerado. Para obter mais informações, consulte Classe de evento excedida do limite da CPU.

A partir do SQL Server 2016 (13.x) SP2 e do SQL Server 2017 (14.x) CU3, e usando sinalizador de rastreamento 2422, o administrador de recursos anula uma solicitação quando o tempo máximo da CPU é excedido.

REQUEST_MEMORY_GRANT_TIMEOUT_SEC = valor

Especifica o tempo máximo, em segundos, que uma consulta pode aguardar até que uma concessão de memória da memória do espaço de trabalho de consulta fique disponível. valor deve ser 0 ou um número inteiro positivo. A configuração padrão para valor, 0, usa um cálculo interno baseado no custo da consulta para determinar o tempo máximo.

Uma consulta nem sempre falha quando um tempo limite de concessão de memória é atingido. Uma consulta só falhará se houver muitas consultas simultâneas em execução. Caso contrário, a consulta pode obter apenas a concessão mínima de memória, resultando em desempenho de consulta reduzido.

MAX_DOP = valor

Especifica o grau máximo de paralelismo (MAXDOP) para a execução de consultas paralelas. O intervalo permitido para valor é de 0 a 64. A configuração padrão para valor, 0, usa a configuração global.

Para obter mais informações, consulte MAXDOP.

GROUP_MAX_REQUESTS = valor

Especifica o número máximo de solicitações simultâneas que podem ser executadas no grupo de carga de trabalho. valor deve ser 0 ou um número inteiro positivo. A configuração padrão para valor é 0 e permite solicitações ilimitadas. Quando o máximo de solicitações simultâneas é atingido, uma sessão nesse grupo pode ser criada, mas é colocada em um estado de espera até que o número de solicitações simultâneas caia abaixo do valor especificado.

USANDO { pool_name | [padrão] }

Associa o grupo de carga de trabalho ao pool de recursos definido pelo usuário identificado por pool_nameou ao pool de recursos default. Se pool_name não for fornecido, ou se o argumento USING não for especificado, o grupo de carga de trabalho será associado ao pool de default interno.

default é uma palavra reservada e, quando especificado em USING, deve ser colocado entre parênteses ([]) ou aspas ("").

Pools de recursos internos e grupos de carga de trabalho usam todos os nomes minúsculos, como default. Use a default minúscula em servidores que usam um agrupamento que diferencia maiúsculas de minúsculas. Os servidores com agrupamento que não diferencia maiúsculas de minúsculas tratam default, Defaulte DEFAULT como o mesmo valor.

Comentários

ALTER WORKLOAD GROUP é permitido no grupo de carga de trabalho default, mas não no grupo internal.

As alterações na configuração do grupo de carga de trabalho só entram em vigor depois que ALTER RESOURCE GOVERNOR RECONFIGURE é executada.

Para obter mais informações, consulte do Administrador de Recursos e Grupo de carga de trabalho do Administrador de Recursos.

MAXDOP

Para uma determinada consulta, a MAXDOP efetiva é determinada da seguinte forma:

  • MAXDOP como uma dica de consulta é honrada, desde que não exceda a configuração MAX_DOP grupo de carga de trabalho.
  • MAXDOP como uma dica de consulta sempre substitui a configuração do servidor max degree of parallelism. Para obter mais informações, consulte Configuração do servidor : grau máximo de paralelismo.
  • A MAX_DOP do grupo de carga de trabalho substitui a configuração do servidor max degree of parallelism e a configuração com escopo do banco de dados MAXDOP.

O limite de MAXDOP é definido por tarefa. Não é um de solicitação por ou por limite de consulta. Durante a execução de uma consulta paralela, uma única solicitação pode gerar várias tarefas atribuídas a um agendador de . Para obter mais informações, consulte o Thread e o guia de arquitetura de tarefas.

Quando uma consulta é marcada como serial em tempo de compilação (MAXDOP = 1), ela não pode ser executada com paralelismo em tempo de execução, independentemente do grupo de carga de trabalho ou da definição de configuração do servidor. Depois que MAXDOP é determinado para uma consulta, ele só pode ser reduzido devido à pressão da memória. A reconfiguração do grupo de carga de trabalho não afeta as consultas em espera na fila de concessão de memória.

Planos armazenados em cache

Quando você altera uma configuração de plano que afeta MAX_DOP, a nova configuração entra em vigor em planos armazenados anteriormente em cache somente após a execução de DBCC FREEPROCCACHE (<pool_name>), onde <pool_name> é o nome de um pool de recursos do administrador de recursos usado pelo grupo de carga de trabalho atual.

  • Se mudar MAX_DOP para 1, a execução de DBCC FREEPROCCACHE não é necessária, pois os planos paralelos podem ser executados no modo serial. No entanto, tal plano pode ser menos eficiente do que um plano compilado como um plano serial.
  • Se alterar MAX_DOP de 1 para 0 ou um valor maior que 1, executar DBCC FREEPROCCACHE não é necessário. No entanto, os planos seriais não podem ser executados em paralelo, portanto, limpar o respetivo cache permite que novos planos sejam potencialmente compilados usando paralelismo.

Advertência

A limpeza de planos armazenados em cache de um pool de recursos associado a mais de um grupo de carga de trabalho afeta todos os grupos de carga de trabalho usando o pool de recursos definido pelo usuário identificado por <pool_name>.

Criação de índices

Por motivos de desempenho, a criação de índice pode usar mais espaço de trabalho de memória do que o concedido inicialmente. O administrador de recursos apoia este tratamento especial. No entanto, a concessão inicial e quaisquer concessões de memória adicionais são limitadas pelas configurações do grupo de carga de trabalho e do pool de recursos.

A memória consumida para criar um índice não alinhado em uma tabela particionada é proporcional ao número de partições envolvidas. Se a memória total necessária exceder o limite por consulta imposto pela configuração do grupo de carga de trabalho REQUEST_MAX_MEMORY_GRANT_PERCENT, a criação do índice poderá falhar. Como o grupo de carga de trabalho default permite que uma consulta exceda o limite por consulta com a memória mínima necessária para iniciar para compatibilidade com versões anteriores, talvez seja possível criar o mesmo índice usando o grupo de carga de trabalho default se o pool de recursos default tiver memória total suficiente.

Permissões

Requer a permissão de CONTROL SERVER.

Exemplos

O exemplo a seguir mostra como alterar a importância das solicitações no grupo padrão de MEDIUM para LOW.

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

ALTER RESOURCE GOVERNOR RECONFIGURE;

O exemplo a seguir mostra como mover um grupo de carga de trabalho do pool que ele está atualmente para o pool de default.

ALTER WORKLOAD GROUP adHoc
USING [default];

ALTER RESOURCE GOVERNOR RECONFIGURE;

* Instância gerenciada SQL *  

 

SQL Server e instância gerenciada do SQL

Altera uma configuração de grupo de carga de trabalho do administrador de recursos existente e, opcionalmente, atribui-a a um pool de recursos diferente do administrador de recursos.

Observação

Para a Instância Gerenciada SQL do Azure, você deve estar no contexto do banco de dados master para modificar a configuração do administrador de recursos.

Transact-SQL convenções de sintaxe.

Sintaxe

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] } ]
[ ; ]

Argumentos

group_name | [padrão]

O nome de um grupo de carga de trabalho definido pelo usuário existente ou o grupo de carga de trabalho interno do administrador de recursos default.

default deve estar entre parênteses ([]) ou aspas ("") quando usado com ALTER WORKLOAD GROUP para evitar um conflito com DEFAULT, que é uma palavra reservada do sistema. Para obter mais informações, consulte Identificadores de banco de dados.

Pools de recursos internos e grupos de carga de trabalho usam todos os nomes minúsculos, como default. Use a default minúscula em servidores que usam um agrupamento que diferencia maiúsculas de minúsculas. Os servidores com agrupamento que não diferencia maiúsculas de minúsculas tratam default, Defaulte DEFAULT como o mesmo valor.

IMPORTÂNCIA = { BAIXA | MÉDIO | ALTO }

Especifica a importância relativa de uma solicitação no grupo de carga de trabalho. O valor padrão é MEDIUM.

IMPORTANCE é local para o pool de recursos que contém o grupo de carga de trabalho. Grupos de carga de trabalho de importância diferente dentro do mesmo pool de recursos afetam uns aos outros, mas não afetam grupos de carga de trabalho em outros pools de recursos.

REQUEST_MAX_MEMORY_GRANT_PERCENT = valor

Especifica a quantidade máxima de memória do espaço de trabalho de consulta que uma única solicitação pode retirar do pool. valor é uma porcentagem do tamanho do pool de recursos definido por MAX_MEMORY_PERCENT. O valor padrão é 25.

No SQL Server 2017 (14.x) e versões anteriores, valor é um inteiro e o intervalo permitido é de 1 a 100.

A partir do SQL Server 2019 (15.x), o valor pode ser fracionário usando o tipo de dados float. O intervalo permitido é de 0 a 100.

Importante

A quantidade especificada refere-se apenas à memória do espaço de trabalho de consulta obtida por meio de concessões de memória de consulta.

Não é recomendável definir valor muito grande (por exemplo, maior que 70) porque o servidor pode não conseguir reservar memória livre suficiente para outras consultas simultâneas. Isso pode levar a um tempo limite de concessão de memória erro 8645.

Definir valor como 0 ou um valor pequeno pode impedir que consultas com operadores que exigem memória de espaço de trabalho, como sort e hash, sejam executadas em grupos de carga de trabalho definidos pelo usuário. Se os requisitos de memória de consulta excederem o limite definido por esse parâmetro, ocorrerá o seguinte comportamento:

  • Para grupos de carga de trabalho definidos pelo usuário, o servidor tenta reduzir o grau de paralelismo (DOP) da solicitação (consulta) até que o requisito de memória fique abaixo do limite ou até que DOP seja igual a 1. Se o requisito de memória de consulta ainda for maior do que o limite, o erro 8657 ocorrerá e a consulta falhará.
  • Para os grupos de carga de trabalho internal e default, o servidor permite que a consulta obtenha a memória necessária.

Em ambos os casos, erro 8645 pode ocorrer se o servidor tiver memória física insuficiente.

REQUEST_MAX_CPU_TIME_SEC = valor

Especifica a quantidade máxima de tempo de CPU, em segundos, que uma solicitação pode usar. valor deve ser 0 ou um número inteiro positivo. A configuração padrão para valor é 0, o que significa ilimitado.

Por padrão, o administrador de recursos não impede que uma solicitação continue se o tempo máximo for excedido. No entanto, um evento é gerado. Para obter mais informações, consulte Classe de evento excedida do limite da CPU.

A partir do SQL Server 2016 (13.x) SP2 e do SQL Server 2017 (14.x) CU3, e usando sinalizador de rastreamento 2422, o administrador de recursos anula uma solicitação quando o tempo máximo da CPU é excedido.

REQUEST_MEMORY_GRANT_TIMEOUT_SEC = valor

Especifica o tempo máximo, em segundos, que uma consulta pode aguardar até que uma concessão de memória da memória do espaço de trabalho de consulta fique disponível. valor deve ser 0 ou um número inteiro positivo. A configuração padrão para valor, 0, usa um cálculo interno baseado no custo da consulta para determinar o tempo máximo.

Uma consulta nem sempre falha quando um tempo limite de concessão de memória é atingido. Uma consulta só falhará se houver muitas consultas simultâneas em execução. Caso contrário, a consulta pode obter apenas a concessão mínima de memória, resultando em desempenho de consulta reduzido.

MAX_DOP = valor

Especifica o grau máximo de paralelismo (MAXDOP) para a execução de consultas paralelas. O intervalo permitido para valor é de 0 a 64. A configuração padrão para valor, 0, usa a configuração global.

Para obter mais informações, consulte MAXDOP.

GROUP_MAX_REQUESTS = valor

Especifica o número máximo de solicitações simultâneas que podem ser executadas no grupo de carga de trabalho. valor deve ser 0 ou um número inteiro positivo. A configuração padrão para valor é 0 e permite solicitações ilimitadas. Quando o máximo de solicitações simultâneas é atingido, uma sessão nesse grupo pode ser criada, mas é colocada em um estado de espera até que o número de solicitações simultâneas caia abaixo do valor especificado.

USANDO { pool_name | [padrão] }

Associa o grupo de carga de trabalho ao pool de recursos definido pelo usuário identificado por pool_nameou ao pool de recursos default. Se pool_name não for fornecido, ou se o argumento USING não for especificado, o grupo de carga de trabalho será associado ao pool de default interno.

default é uma palavra reservada e, quando especificado em USING, deve ser colocado entre parênteses ([]) ou aspas ("").

Pools de recursos internos e grupos de carga de trabalho usam todos os nomes minúsculos, como default. Use a default minúscula em servidores que usam um agrupamento que diferencia maiúsculas de minúsculas. Os servidores com agrupamento que não diferencia maiúsculas de minúsculas tratam default, Defaulte DEFAULT como o mesmo valor.

Comentários

ALTER WORKLOAD GROUP é permitido no grupo de carga de trabalho default, mas não no grupo internal.

As alterações na configuração do grupo de carga de trabalho só entram em vigor depois que ALTER RESOURCE GOVERNOR RECONFIGURE é executada.

Para obter mais informações, consulte do Administrador de Recursos e Grupo de carga de trabalho do Administrador de Recursos.

MAXDOP

Para uma determinada consulta, a MAXDOP efetiva é determinada da seguinte forma:

  • MAXDOP como uma dica de consulta é honrada, desde que não exceda a configuração MAX_DOP grupo de carga de trabalho.
  • MAXDOP como uma dica de consulta sempre substitui a configuração do servidor max degree of parallelism. Para obter mais informações, consulte Configuração do servidor : grau máximo de paralelismo.
  • A MAX_DOP do grupo de carga de trabalho substitui a configuração do servidor max degree of parallelism e a configuração com escopo do banco de dados MAXDOP.

O limite de MAXDOP é definido por tarefa. Não é um de solicitação por ou por limite de consulta. Durante a execução de uma consulta paralela, uma única solicitação pode gerar várias tarefas atribuídas a um agendador de . Para obter mais informações, consulte o Thread e o guia de arquitetura de tarefas.

Quando uma consulta é marcada como serial em tempo de compilação (MAXDOP = 1), ela não pode ser executada com paralelismo em tempo de execução, independentemente do grupo de carga de trabalho ou da definição de configuração do servidor. Depois que MAXDOP é determinado para uma consulta, ele só pode ser reduzido devido à pressão da memória. A reconfiguração do grupo de carga de trabalho não afeta as consultas em espera na fila de concessão de memória.

Planos armazenados em cache

Quando você altera uma configuração de plano que afeta MAX_DOP, a nova configuração entra em vigor em planos armazenados anteriormente em cache somente após a execução de DBCC FREEPROCCACHE (<pool_name>), onde <pool_name> é o nome de um pool de recursos do administrador de recursos usado pelo grupo de carga de trabalho atual.

  • Se mudar MAX_DOP para 1, a execução de DBCC FREEPROCCACHE não é necessária, pois os planos paralelos podem ser executados no modo serial. No entanto, tal plano pode ser menos eficiente do que um plano compilado como um plano serial.
  • Se alterar MAX_DOP de 1 para 0 ou um valor maior que 1, executar DBCC FREEPROCCACHE não é necessário. No entanto, os planos seriais não podem ser executados em paralelo, portanto, limpar o respetivo cache permite que novos planos sejam potencialmente compilados usando paralelismo.

Advertência

A limpeza de planos armazenados em cache de um pool de recursos associado a mais de um grupo de carga de trabalho afeta todos os grupos de carga de trabalho usando o pool de recursos definido pelo usuário identificado por <pool_name>.

Criação de índices

Por motivos de desempenho, a criação de índice pode usar mais espaço de trabalho de memória do que o concedido inicialmente. O administrador de recursos apoia este tratamento especial. No entanto, a concessão inicial e quaisquer concessões de memória adicionais são limitadas pelas configurações do grupo de carga de trabalho e do pool de recursos.

A memória consumida para criar um índice não alinhado em uma tabela particionada é proporcional ao número de partições envolvidas. Se a memória total necessária exceder o limite por consulta imposto pela configuração do grupo de carga de trabalho REQUEST_MAX_MEMORY_GRANT_PERCENT, a criação do índice poderá falhar. Como o grupo de carga de trabalho default permite que uma consulta exceda o limite por consulta com a memória mínima necessária para iniciar para compatibilidade com versões anteriores, talvez seja possível criar o mesmo índice usando o grupo de carga de trabalho default se o pool de recursos default tiver memória total suficiente.

Permissões

Requer a permissão de CONTROL SERVER.

Exemplos

O exemplo a seguir mostra como alterar a importância das solicitações no grupo padrão de MEDIUM para LOW.

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

ALTER RESOURCE GOVERNOR RECONFIGURE;

O exemplo a seguir mostra como mover um grupo de carga de trabalho do pool que ele está atualmente para o pool de default.

ALTER WORKLOAD GROUP adHoc
USING [default];

ALTER RESOURCE GOVERNOR RECONFIGURE;

de instância gerenciada SQL

* Sinapse do Azure
Análise *
 

 

Azure Synapse Analytics

Altera um grupo de carga de trabalho existente.

Consulte a seção ALTER WORKLOAD GROUP comportamento abaixo para obter mais detalhes sobre como ALTER WORKLOAD GROUP se comporta em um sistema com solicitações em execução e enfileiradas.

As restrições em vigor para CREATE WORKLOAD GROUP também se aplicam a ALTER WORKLOAD GROUP. Antes de modificar os parâmetros, consulte sys.workload_management_workload_groups para garantir que os valores estejam dentro de intervalos aceitáveis.

Sintaxe

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 ] )
  [ ; ]

Argumentos

group_name

É o nome do grupo de carga de trabalho definido pelo usuário existente que está sendo alterado. group_name não é alterável.

MIN_PERCENTAGE_RESOURCE = valor

valor é um intervalo inteiro de 0 a 100. Ao alterar MIN_PERCENTAGE_RESOURCE, a soma de MIN_PERCENTAGE_RESOURCE em todos os grupos de carga de trabalho não pode exceder 100. Alterar MIN_PERCENTAGE_RESOURCE requer que todas as consultas em execução sejam concluídas no grupo de carga de trabalho antes que o comando seja concluído. Para obter mais informações, consulte a seção comportamento ALTER WORKLOAD GROUP neste artigo.

CAP_PERCENTAGE_RESOURCE = valor

valor é um intervalo inteiro de 1 a 100. O valor para CAP_PERCENTAGE_RESOURCE deve ser maior que MIN_PERCENTAGE_RESOURCE. Alterar CAP_PERCENTAGE_RESOURCE requer que todas as consultas em execução sejam concluídas no grupo de carga de trabalho antes que o comando seja concluído. Para obter mais informações, consulte a seção comportamento ALTER WORKLOAD GROUP neste artigo.

REQUEST_MIN_RESOURCE_GRANT_PERCENT = valor

valor é decimal com um intervalo entre 0,75 e 100,00. O valor para REQUEST_MIN_RESOURCE_GRANT_PERCENT precisa ser um fator de MIN_PERCENTAGE_RESOURCE e ser inferior a CAP_PERCENTAGE_RESOURCE.

REQUEST_MAX_RESOURCE_GRANT_PERCENT = valor

valor é decimal e deve ser maior que REQUEST_MIN_RESOURCE_GRANT_PERCENT.

IMPORTÂNCIA = { BAIXA | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | ALTO }

Altera a importância padrão de uma solicitação para o grupo de carga de trabalho.

QUERY_EXECUTION_TIMEOUT_SEC = valor

Altera o tempo máximo, em segundos, que uma consulta pode executar antes de ser cancelada. O valor deve ser 0 ou um número inteiro positivo. A configuração padrão para o valor é 0, o que significa ilimitado.

Permissões

Requer permissão de CONTROL DATABASE.

Exemplo

O exemplo abaixo verifica os valores na exibição de catálogo para um grupo de carga de trabalho chamado wgDataLoadse altera os valores.

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 )

Comportamento ALTER WORKLOAD GROUP

A qualquer momento existem três tipos de pedidos no sistema:

  • Pedidos que ainda não foram classificados.
  • Solicitações classificadas e aguardando bloqueios de objetos ou recursos do sistema.
  • Solicitações classificadas e em execução.

Com base nas propriedades de um grupo de carga de trabalho que está sendo alterado, o tempo de quando as configurações entram em vigor será diferente.

Importância ou query_execution_timeout

Para as propriedades de importância e query_execution_timeout, as solicitações não classificadas pegam os novos valores de configuração. As solicitações em espera e em execução são executadas com a configuração antiga. A solicitação ALTER WORKLOAD GROUP é executada imediatamente, independentemente de haver consultas em execução no grupo de carga de trabalho.

REQUEST_MIN_RESOURCE_GRANT_PERCENT ou REQUEST_MAX_RESOURCE_GRANT_PERCENT

Para REQUEST_MIN_RESOURCE_GRANT_PERCENT e REQUEST_MAX_RESOURCE_GRANT_PERCENT, as solicitações em execução são executadas com a configuração antiga. As solicitações em espera e as solicitações não classificadas recebem os novos valores de configuração. A solicitação ALTER WORKLOAD GROUP é executada imediatamente, independentemente de haver consultas em execução no grupo de carga de trabalho.

MIN_PERCENTAGE_RESOURCE ou CAP_PERCENTAGE_RESOURCE

Por MIN_PERCENTAGE_RESOURCE e CAP_PERCENTAGE_RESOURCE, as solicitações em execução são executadas com a configuração antiga. As solicitações em espera e as solicitações não classificadas recebem os novos valores de configuração.

Alterar MIN_PERCENTAGE_RESOURCE e CAP_PERCENTAGE_RESOURCE requer a drenagem de solicitações em execução no grupo de carga de trabalho que está sendo alterado. Ao diminuir MIN_PERCENTAGE_RESOURCE, os recursos liberados são retornados ao pool de compartilhamentos, permitindo que solicitações de outros grupos de carga de trabalho possam ser utilizadas. Por outro lado, aumentar o MIN_PERCENTAGE_RESOURCE aguardará até que as solicitações utilizando apenas os recursos necessários do pool compartilhado sejam concluídas. A operação ALTER WORKLOAD GROUP terá acesso priorizado a recursos compartilhados em detrimento de outras solicitações aguardando para serem executadas no pool compartilhado. Se a soma de MIN_PERCENTAGE_RESOURCE exceder 100%, a solicitação de ALTER WORKLOAD GROUP falhará imediatamente.

Comportamento de bloqueio

Alterar um grupo de carga de trabalho requer um bloqueio global em todos os grupos de carga de trabalho. Uma solicitação para alterar um grupo de carga de trabalho ficaria na fila atrás de solicitações de grupo de carga de trabalho já enviadas, criar ou descartar. Se um lote de declarações de alteração for enviado de uma só vez, elas serão processadas na ordem em que são enviadas.

Ver também