Compartilhar via


ALTER WORKLOAD GROUP (Transact-SQL)

Selecionar um produto

Na linha a seguir, selecione o nome do produto no qual você está interessado e somente as informações do produto são exibidas.

* SQL Server *  

da Instância Gerenciada de SQL

 

SQL Server e Instância Gerenciada de SQL

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

Nota

Para a Instância Gerenciada de 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 do administrador de recursos interno default grupo de carga de trabalho.

default deve estar entre colchetes ([]) ou aspas ("") quando usadas 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 o default de maiúsculas e minúsculas em servidores que usam uma ordenação que diferencia maiúsculas de minúsculas. Servidores com ordenação que não diferencia maiúsculas de minúsculas tratam default, Defaulte DEFAULT como o mesmo valor.

IMPORTANCE = { LOW | MEDIUM | HIGH }

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 = de valor

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

No SQL Server 2017 (14.x) e mais antigo, 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

O valor especificado refere-se apenas à memória do workspace 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 workspace, 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, o seguinte comportamento ocorrerá:

  • 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 o DOP seja igual a 1. Se o requisito de memória de consulta ainda for maior que o limite, ocorrerá o erro 8657 e a consulta falhará.
  • Para os grupos de cargas de trabalho internal e default, o servidor permite que a consulta obtenha a memória necessária.

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

REQUEST_MAX_CPU_TIME_SEC = de valor

Especifica a quantidade máxima de tempo de CPU, em segundos, que uma solicitação pode usar. valor deve ser 0 ou um 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 limite de CPU excedido classe de evento.

Começando com o SQL Server 2016 (13.x) SP2 e o 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 de CPU é excedido.

REQUEST_MEMORY_GRANT_TIMEOUT_SEC = de valor

Especifica o tempo máximo, em segundos, que uma consulta pode aguardar uma concessão de memória da memória do workspace de consulta ficar disponível. valor deve ser 0 ou um inteiro positivo. A configuração padrão para valor, 0, usa um cálculo interno com base 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 só poderá obter a concessão mínima de memória, resultando em um desempenho de consulta reduzido.

MAX_DOP = de valor

Especifica o grau máximo de paralelismo (MAXDOP) para execução de consulta paralela. 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 = de 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 inteiro positivo. A configuração padrão para valor é 0 e permite solicitações ilimitadas. Quando as solicitações simultâneas máximas são atingidas, 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 fique abaixo do valor especificado.

USING { pool_name | [padrão] }

Associa o grupo de carga de trabalho ao pool de recursos definido pelo usuário identificado por pool_nameou com o 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 especificada em USING, deve estar entre colchetes ([]) ou aspas ("").

Pools de recursos internos e grupos de carga de trabalho usam todos os nomes minúsculos, como default. Use o default de maiúsculas e minúsculas em servidores que usam uma ordenação que diferencia maiúsculas de minúsculas. Servidores com ordenação que não diferencia maiúsculas de minúsculas tratam default, Defaulte DEFAULT como o mesmo valor.

Observações

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

As alterações na configuração do grupo de carga de trabalho não entrarão em vigor até que ALTER RESOURCE GOVERNOR RECONFIGURE seja executada.

Para obter mais informações, consulte do administrador de recursos e grupo de cargas de trabalho do administrador de recursos.

MAXDOP

Para uma determinada consulta, MAXDOP em vigor é determinado da seguinte maneira:

  • MAXDOP como uma dica de consulta é respeitada, desde que não exceda a configuração de MAX_DOP do 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.
  • O grupo de carga de trabalho MAX_DOP substitui a configuração do servidor max degree of parallelism e a configuração no escopo do banco de dados MAXDOP.

O limite de MAXDOP é definido por tarefa. Não é uma 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 . Para obter mais informações, consulte o Thread e o guia de arquitetura de tarefas.

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

Planos armazenados em cache

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

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

Aviso

Limpar 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 índice

Por motivos de desempenho, a criação de índice tem permissão para usar mais espaço de trabalho de memória do que o concedido inicialmente. O administrador de recursos dá suporte a esse 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 atribuído 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, você poderá 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 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 no momento para o pool de default.

ALTER WORKLOAD GROUP adHoc
USING [default];

ALTER RESOURCE GOVERNOR RECONFIGURE;

* Instância Gerenciada de SQL *  

 

SQL Server e Instância Gerenciada de SQL

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

Nota

Para a Instância Gerenciada de 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 do administrador de recursos interno default grupo de carga de trabalho.

default deve estar entre colchetes ([]) ou aspas ("") quando usadas 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 o default de maiúsculas e minúsculas em servidores que usam uma ordenação que diferencia maiúsculas de minúsculas. Servidores com ordenação que não diferencia maiúsculas de minúsculas tratam default, Defaulte DEFAULT como o mesmo valor.

IMPORTANCE = { LOW | MEDIUM | HIGH }

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 = de valor

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

No SQL Server 2017 (14.x) e mais antigo, 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

O valor especificado refere-se apenas à memória do workspace 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 workspace, 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, o seguinte comportamento ocorrerá:

  • 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 o DOP seja igual a 1. Se o requisito de memória de consulta ainda for maior que o limite, ocorrerá o erro 8657 e a consulta falhará.
  • Para os grupos de cargas de trabalho internal e default, o servidor permite que a consulta obtenha a memória necessária.

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

REQUEST_MAX_CPU_TIME_SEC = de valor

Especifica a quantidade máxima de tempo de CPU, em segundos, que uma solicitação pode usar. valor deve ser 0 ou um 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 limite de CPU excedido classe de evento.

Começando com o SQL Server 2016 (13.x) SP2 e o 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 de CPU é excedido.

REQUEST_MEMORY_GRANT_TIMEOUT_SEC = de valor

Especifica o tempo máximo, em segundos, que uma consulta pode aguardar uma concessão de memória da memória do workspace de consulta ficar disponível. valor deve ser 0 ou um inteiro positivo. A configuração padrão para valor, 0, usa um cálculo interno com base 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 só poderá obter a concessão mínima de memória, resultando em um desempenho de consulta reduzido.

MAX_DOP = de valor

Especifica o grau máximo de paralelismo (MAXDOP) para execução de consulta paralela. 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 = de 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 inteiro positivo. A configuração padrão para valor é 0 e permite solicitações ilimitadas. Quando as solicitações simultâneas máximas são atingidas, 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 fique abaixo do valor especificado.

USING { pool_name | [padrão] }

Associa o grupo de carga de trabalho ao pool de recursos definido pelo usuário identificado por pool_nameou com o 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 especificada em USING, deve estar entre colchetes ([]) ou aspas ("").

Pools de recursos internos e grupos de carga de trabalho usam todos os nomes minúsculos, como default. Use o default de maiúsculas e minúsculas em servidores que usam uma ordenação que diferencia maiúsculas de minúsculas. Servidores com ordenação que não diferencia maiúsculas de minúsculas tratam default, Defaulte DEFAULT como o mesmo valor.

Observações

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

As alterações na configuração do grupo de carga de trabalho não entrarão em vigor até que ALTER RESOURCE GOVERNOR RECONFIGURE seja executada.

Para obter mais informações, consulte do administrador de recursos e grupo de cargas de trabalho do administrador de recursos.

MAXDOP

Para uma determinada consulta, MAXDOP em vigor é determinado da seguinte maneira:

  • MAXDOP como uma dica de consulta é respeitada, desde que não exceda a configuração de MAX_DOP do 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.
  • O grupo de carga de trabalho MAX_DOP substitui a configuração do servidor max degree of parallelism e a configuração no escopo do banco de dados MAXDOP.

O limite de MAXDOP é definido por tarefa. Não é uma 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 . Para obter mais informações, consulte o Thread e o guia de arquitetura de tarefas.

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

Planos armazenados em cache

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

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

Aviso

Limpar 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 índice

Por motivos de desempenho, a criação de índice tem permissão para usar mais espaço de trabalho de memória do que o concedido inicialmente. O administrador de recursos dá suporte a esse 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 atribuído 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, você poderá 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 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 no momento para o pool de default.

ALTER WORKLOAD GROUP adHoc
USING [default];

ALTER RESOURCE GOVERNOR RECONFIGURE;

da Instância Gerenciada de SQL

* Azure Synapse
Análise *
 

 

Azure Synapse Analytics

Altera um grupo de carga de trabalho existente.

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

As restrições em vigor para CREATE WORKLOAD GROUP também se aplicam a ALTER WORKLOAD GROUP. Antes de modificar 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 = de 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 de comportamento ALTER WORKLOAD GROUP neste artigo.

CAP_PERCENTAGE_RESOURCE = de 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 de comportamento ALTER WORKLOAD GROUP neste artigo.

REQUEST_MIN_RESOURCE_GRANT_PERCENT = de valor

valor é um 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 menor que CAP_PERCENTAGE_RESOURCE.

REQUEST_MAX_RESOURCE_GRANT_PERCENT = valor

valor é um decimal e deve ser maior que REQUEST_MIN_RESOURCE_GRANT_PERCENT.

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

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 ser executada antes de ser cancelada. O valor deve ser 0 ou um inteiro positivo. A configuração padrão para o valor é 0, o que significa ilimitado.

Permissões

Requer permissão CONTROL DATABASE .

Exemplo

O exemplo abaixo verifica os valores na exibição de catálogo de 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, há três tipos de solicitações no sistema:

  • Solicitações que ainda não foram classificadas.
  • Solicitações classificadas e aguardando bloqueios de objeto 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 entrarão em vigor será diferente.

Importância ou query_execution_timeout

Para a importância e query_execution_timeout propriedades, as solicitações não classificadas captam os novos valores de configuração. Aguardando e executando solicitações 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, a execução de solicitações é executada com a configuração antiga. Solicitações de espera e solicitações não classificadas captam 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

Para MIN_PERCENTAGE_RESOURCE e CAP_PERCENTAGE_RESOURCE, a execução de solicitações é executada com a configuração antiga. Solicitações de espera e solicitações não classificadas captam os novos valores de configuração.

Alterar MIN_PERCENTAGE_RESOURCE e CAP_PERCENTAGE_RESOURCE requer o esvaziamento 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 para o pool de compartilhamento, permitindo que solicitações de outros grupos de carga de trabalho a capacidade de utilizar. Por outro lado, aumentar o MIN_PERCENTAGE_RESOURCE aguardará até que as solicitações que utilizam apenas os recursos necessários do pool compartilhado sejam concluídas. A operação de ALTER WORKLOAD GROUP terá acesso priorizado aos recursos compartilhados em relação a outras solicitações que esperam ser executadas no pool compartilhado. Se a soma de MIN_PERCENTAGE_RESOURCE exceder 100%, a solicitação 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 faria fila atrás de solicitações de grupo de carga de trabalho já enviadas. Se um lote de instruções alter for enviado ao mesmo tempo, elas serão processadas na ordem em que são enviadas.

Consulte também