ALTER WORKLOAD GROUP (Transact-SQL)

Selecionar um produto

Na linha a seguir, selecione o nome do produto em que você tem interesse e somente as informações do produto serão exibidas.

* SQL Server *  

 

SQL Server e Instância Gerenciada de SQL

Altera uma configuração existente de grupo de cargas de trabalho do Resource Governor e a atribui opcionalmente a um pool de recursos do Resource Governor.

Observação

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

Convenções de sintaxe Transact-SQL.

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 | "default"

Nome de um grupo de cargas de trabalho existente, definido pelo usuário, ou grupo de cargas de trabalho padrão do Resource Governor. O Administrador de Recursos cria os grupos internos e padrão quando o SQL Server é instalado.

A opção "default" deve estar entre aspas ("") ou colchetes ([]) quando usada com ALTER WORKLOAD GROUP para evitar conflito com DEFAULT, que é uma palavra reservada do sistema. Para obter mais informações, consulte Database Identifiers.

Os grupos de carga de trabalho predefinidos e os pools de recursos usam nomes de letras minúsculas, como "padrão". Isso deve ser levado em consideração nos servidores que usam ordenação com diferenciação de maiúsculas e minúsculas. Servidores com ordenação sem diferenciação de maiúsculas e minúsculas, como SQL_Latin1_General_CP1_CI_AS, tratarão "default" e "Default" da mesma forma.

IMPORTANCE = { LOW | MEDIUM | HIGH }

Especifica a importância relativa de uma solicitação no grupo de carga de trabalho. A importância é uma das seguintes:

  • LOW
  • MEDIUM (padrão)
  • HIGH

Internamente, cada configuração de importância é armazenada como um número usado para cálculos.

IMPORTANCE é local para o pool de recursos; grupos de cargas de trabalho de importâncias diferentes no mesmo pool de recursos afetam uns aos outros, mas não afetam grupos de cargas de trabalho em outro pool de recursos.

REQUEST_MAX_MEMORY_GRANT_PERCENT = valor

Especifica o máximo de memória que uma única solicitação pode usar do pool. valor é um percentual relativo ao tamanho do pool de recursos especificado por MAX_MEMORY_PERCENT. O valor padrão é 25. A quantidade especificada se refere apenas à memória de concessão de execução da consulta.

valor é um int até o SQL Server 2017 (14.x), e o intervalo permitido é de 1 a 100. Começando com SQL Server 2019 (15.x), o valor é um tipo de dados float e o intervalo permitido é de 0 a 100.

Importante

A configuração de value como 0 impede a execução de consultas com as operações SORT e HASH JOIN em grupos de cargas de trabalho definidos pelo usuário.

Não é recomendável definir value com um valor maior que 70, pois o servidor poderá não conseguir separar memória livre suficiente se outras consultas simultâneas estiverem sendo executadas. Isso pode eventualmente levar ao erro 8645, tempo limite da consulta excedido.

Se os requisitos de memória de consulta excederem o limite especificado por esse parâmetro, o servidor fará o seguinte:

  • Para grupos de cargas de trabalho definidos pelo usuário, o servidor tenta reduzir o grau de paralelismo da consulta, até que o requisito de memória caia abaixo do limite, ou até que o grau de paralelismo seja igual a 1. Se o requisito de memória de consulta ainda for maior que o limite, ocorrerá o erro 8657.
  • Para grupos de cargas de trabalho internos e padrão, o servidor permite que a consulta obtenha a memória necessária.

Ambos os casos estarão sujeitos ao erro de tempo limite 8645 se a memória física do servidor for insuficiente.

REQUEST_MAX_CPU_TIME_SEC = valor

Especifica o tempo máximo de CPU, em segundos, que uma solicitação pode usar. value precisa ser 0 ou um inteiro positivo. A configuração padrão de value é 0, o que significa ilimitado. Por padrão, o Resource Governor não impedirá a continuação de uma solicitação se o tempo máximo for excedido. Porém, um evento será gerado. Para obter mais informações, consulte Classe de evento CPU Threshold Exceeded.

Começando com o SQL Server 2016 (13.x) SP2 e SQL Server 2017 (14.x) CU3 e usando o sinalizador de rastreamento 2422, o Resource Governor anulará uma solicitação quando o tempo máximo for excedido.

REQUEST_MEMORY_GRANT_TIMEOUT_SEC = valor

Especifica o tempo máximo, em segundos, que uma consulta pode aguardar pela concessão de memória (memória do buffer de trabalho).

Nem sempre uma consulta falha quando o tempo limite de concessão de memória é atingido. A consulta falhará somente se houver muitas consultas simultâneas em execução. Caso contrário, a consulta poderá obter apenas a concessão de memória mínima, resultando em uma queda no desempenho de consulta.

value deve ser um inteiro positivo. A configuração padrão de value, 0, usa um cálculo interno baseado no custo da consulta para determinar o tempo máximo.

MAX_DOP = valor

Especifica o DOP (grau máximo de paralelismo) para solicitações paralelas. value deve ser 0 ou um inteiro positivo, de 1 a 255. Quando value for 0, o servidor escolherá o grau máximo de paralelismo. Essa é a configuração padrão e recomendada.

O valor real que o Mecanismo de Banco de Dados define para MAX_DOP poderia ser menos que o valor especificado. O valor final é determinado pela fórmula min(255, número de CPUs) .

Cuidado

Alterar MAX_DOP pode comprometer o desempenho de um servidor. Se você precisar alterar MAX_DOP, nós recomendaremos que seja definido um valor menor que ou igual ao número máximo de agendadores de hardware que existem em um único nó NUMA. Nós recomendamos que você não defina MAX_DOP como um valor maior que 8.

MAX_DOP é tratado como segue:

  • MAX_DOP como dica de consulta será cumprido, contanto que não exceda o grupo de cargas de trabalho MAX_DOP.

  • MAX_DOP como uma dica de consulta sempre substitui o 'grau máximo de paralelismo' sp_configure.

  • O grupo de carga de trabalho MAX_DOP substitui o 'grau máximo de paralelismo' sp_configure.

  • Se a consulta for marcada como serial (MAX_DOP = 1) em tempo de compilação, ela não poderá ser revertida a paralela em tempo de execução, independentemente do grupo de carga de trabalho ou da configuração sp_configure.

Depois de ser configurado, o DOP só pode ser reduzido sob pressão de concessão de memória. A reconfiguração do grupo de carga de trabalho não é visível durante a espera na fila de concessão de memória.

GROUP_MAX_REQUESTS = valor

Especifica o número máximo de solicitações simultâneas permitido para execução no grupo de carga de trabalho. value precisa ser 0 ou um inteiro positivo. A configuração padrão de value, 0, permite solicitações ilimitadas. Quando as solicitações simultâneas máximas são alcançadas, um usuário nesse grupo pode entrar, mas é colocado em estado de espera até que as solicitações simultâneas fiquem abaixo do valor especificado.

USING { pool_name | "default" }

Associa o grupo de cargas de trabalho ao pool de recursos definido pelo usuário, identificado por pool_name, o que, na realidade, coloca o grupo de cargas de trabalho no pool de recursos. Se pool_name não é fornecido ou se o argumento USING não é usado, o grupo de carga de trabalho é colocado no pool padrão predefinido do Resource Governor.

A opção "default" diferencia maiúsculas e minúsculas e deve estar entre aspas ("") ou colchetes ([]) quando usada com ALTER WORKLOAD GROUP para evitar conflito com DEFAULT, que é uma palavra reservada do sistema. Para obter mais informações, consulte Database Identifiers.

Comentários

ALTER WORKLOAD GROUP é permitido no grupo padrão.

As alterações na configuração do grupo de cargas de trabalho não entrarão em vigor enquanto ALTER RESOURCE GOVERNOR RECONFIGURE não for executado. Ao alterar um plano que afeta a configuração, a nova configuração apenas terá efeito nos planos anteriormente armazenados em cache após a execução de DBCC FREEPROCCACHE (*pool_name*), onde pool_name é o nome de um pool de recursos do Resource Governor ao qual o grupo de carga de trabalho está associado.

  • Se você estiver alterando MAX_DOP para 1, a execução de DBCC FREEPROCCACHE não será necessária, porque os planos paralelos podem ser executados em modo serial. No entanto, isso pode não ser tão eficiente quanto um plano compilado como um plano serial.

  • Se você estiver alterando MAX_DOP de 1 para 0 ou para um valor maior que 1, a execução de DBCC FREEPROCCACHE não será necessária. No entanto, os planos seriais não podem ser executados em paralelo, portanto, limpar o respectivo cache possibilitará a compilação de novos planos usando paralelismo.

Cuidado

A limpeza de planos armazenados em cache de um pool de recursos que está associado a mais de um grupo de carga de trabalho afetará todos os grupos de cargas de trabalho com o pool de recursos definido pelo usuário identificado por pool_name.

Ao executar instruções DDL, você deve estar familiarizado com os estados do Resource Governor. Para obter mais informações, consulte Resource Governor.

REQUEST_MEMORY_GRANT_PERCENT: no SQL Server 2005 (9.x), a criação de índice tem permissão para usar mais memória do workspace do que a concedida inicialmente para melhorar o desempenho. Esse tratamento especial tem suporte do Administrador de Recursos em versões posteriores. No entanto, a concessão inicial e qualquer concessão de memória adicional estão limitadas pelas configurações de pool de recursos e de grupo de cargas de trabalho.

Criação de índice em uma tabela particionada

A memória consumida pela criação de índice na tabela particionada não alinhada é proporcional ao número de partições envolvidas. Se a memória total necessária exceder o limite por consulta (REQUEST_MAX_MEMORY_GRANT_PERCENT) imposto pela configuração de grupo de cargas de trabalho do Resource Governor, poderá ocorrer uma falha na criação do índice. Como o grupo de cargas de trabalho "padrão" permite que uma consulta exceda o limite por consulta com o mínimo de memória requerida para iniciar, para compatibilidade com o SQL Server 2005 (9.x), o usuário talvez possa executar a mesma criação de índice no grupo de cargas de trabalho "padrão" caso o pool de recursos "padrão" tenha memória total suficiente configurada para executar tal consulta.

Permissões

Requer a permissão CONTROL SERVER.

Exemplos

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

ALTER WORKLOAD GROUP "default"
WITH (IMPORTANCE = LOW);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO

O exemplo a seguir mostra como mover um grupo de cargas de trabalho do pool em que ele se encontra para o pool padrão.

ALTER WORKLOAD GROUP adHoc
USING [default];
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO

Confira também

* Instância Gerenciada de SQL *  

 

SQL Server e Instância Gerenciada de SQL

Altera uma configuração existente de grupo de cargas de trabalho do Resource Governor e a atribui opcionalmente a um pool de recursos do Resource Governor.

Observação

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

Convenções de sintaxe Transact-SQL.

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 | "default"

Nome de um grupo de cargas de trabalho existente, definido pelo usuário, ou grupo de cargas de trabalho padrão do Resource Governor. O Administrador de Recursos cria os grupos internos e padrão quando o SQL Server é instalado.

A opção "default" deve estar entre aspas ("") ou colchetes ([]) quando usada com ALTER WORKLOAD GROUP para evitar conflito com DEFAULT, que é uma palavra reservada do sistema. Para obter mais informações, consulte Database Identifiers.

Os grupos de carga de trabalho predefinidos e os pools de recursos usam nomes de letras minúsculas, como "padrão". Isso deve ser levado em consideração nos servidores que usam ordenação com diferenciação de maiúsculas e minúsculas. Servidores com ordenação sem diferenciação de maiúsculas e minúsculas, como SQL_Latin1_General_CP1_CI_AS, tratarão "default" e "Default" da mesma forma.

IMPORTANCE = { LOW | MEDIUM | HIGH }

Especifica a importância relativa de uma solicitação no grupo de carga de trabalho. A importância é uma das seguintes:

  • LOW
  • MEDIUM (padrão)
  • HIGH

Internamente, cada configuração de importância é armazenada como um número usado para cálculos.

IMPORTANCE é local para o pool de recursos; grupos de cargas de trabalho de importâncias diferentes no mesmo pool de recursos afetam uns aos outros, mas não afetam grupos de cargas de trabalho em outro pool de recursos.

REQUEST_MAX_MEMORY_GRANT_PERCENT = valor

Especifica o máximo de memória que uma única solicitação pode usar do pool. valor é um percentual relativo ao tamanho do pool de recursos especificado por MAX_MEMORY_PERCENT. O valor padrão é 25. A quantidade especificada se refere apenas à memória de concessão de execução da consulta.

valor é um int até o SQL Server 2017 (14.x), e o intervalo permitido é de 1 a 100. Começando com SQL Server 2019 (15.x), o valor é um tipo de dados float e o intervalo permitido é de 0 a 100.

Importante

A configuração de value como 0 impede a execução de consultas com as operações SORT e HASH JOIN em grupos de cargas de trabalho definidos pelo usuário.

Não é recomendável definir value com um valor maior que 70, pois o servidor poderá não conseguir separar memória livre suficiente se outras consultas simultâneas estiverem sendo executadas. Isso pode eventualmente levar ao erro 8645, tempo limite da consulta excedido.

Se os requisitos de memória de consulta excederem o limite especificado por esse parâmetro, o servidor fará o seguinte:

  • Para grupos de cargas de trabalho definidos pelo usuário, o servidor tenta reduzir o grau de paralelismo da consulta, até que o requisito de memória caia abaixo do limite, ou até que o grau de paralelismo seja igual a 1. Se o requisito de memória de consulta ainda for maior que o limite, ocorrerá o erro 8657.
  • Para grupos de cargas de trabalho internos e padrão, o servidor permite que a consulta obtenha a memória necessária.

Ambos os casos estarão sujeitos ao erro de tempo limite 8645 se a memória física do servidor for insuficiente.

REQUEST_MAX_CPU_TIME_SEC = valor

Especifica o tempo máximo de CPU, em segundos, que uma solicitação pode usar. value precisa ser 0 ou um inteiro positivo. A configuração padrão de value é 0, o que significa ilimitado. Por padrão, o Resource Governor não impedirá a continuação de uma solicitação se o tempo máximo for excedido. Porém, um evento será gerado. Para obter mais informações, consulte Classe de evento CPU Threshold Exceeded.

Começando com o SQL Server 2016 (13.x) SP2 e SQL Server 2017 (14.x) CU3 e usando o sinalizador de rastreamento 2422, o Resource Governor anulará uma solicitação quando o tempo máximo for excedido.

REQUEST_MEMORY_GRANT_TIMEOUT_SEC = valor

Especifica o tempo máximo, em segundos, que uma consulta pode aguardar pela concessão de memória (memória do buffer de trabalho).

Nem sempre uma consulta falha quando o tempo limite de concessão de memória é atingido. A consulta falhará somente se houver muitas consultas simultâneas em execução. Caso contrário, a consulta poderá obter apenas a concessão de memória mínima, resultando em uma queda no desempenho de consulta.

value deve ser um inteiro positivo. A configuração padrão de value, 0, usa um cálculo interno baseado no custo da consulta para determinar o tempo máximo.

MAX_DOP = valor

Especifica o DOP (grau máximo de paralelismo) para solicitações paralelas. value deve ser 0 ou um inteiro positivo, de 1 a 255. Quando value for 0, o servidor escolherá o grau máximo de paralelismo. Essa é a configuração padrão e recomendada.

O valor real que o Mecanismo de Banco de Dados define para MAX_DOP poderia ser menos que o valor especificado. O valor final é determinado pela fórmula min(255, número de CPUs) .

Cuidado

Alterar MAX_DOP pode comprometer o desempenho de um servidor. Se você precisar alterar MAX_DOP, nós recomendaremos que seja definido um valor menor que ou igual ao número máximo de agendadores de hardware que existem em um único nó NUMA. Nós recomendamos que você não defina MAX_DOP como um valor maior que 8.

MAX_DOP é tratado como segue:

  • MAX_DOP como dica de consulta será cumprido, contanto que não exceda o grupo de cargas de trabalho MAX_DOP.

  • MAX_DOP como uma dica de consulta sempre substitui o 'grau máximo de paralelismo' sp_configure.

  • O grupo de carga de trabalho MAX_DOP substitui o 'grau máximo de paralelismo' sp_configure.

  • Se a consulta for marcada como serial (MAX_DOP = 1) em tempo de compilação, ela não poderá ser revertida a paralela em tempo de execução, independentemente do grupo de carga de trabalho ou da configuração sp_configure.

Depois de ser configurado, o DOP só pode ser reduzido sob pressão de concessão de memória. A reconfiguração do grupo de carga de trabalho não é visível durante a espera na fila de concessão de memória.

GROUP_MAX_REQUESTS = valor

Especifica o número máximo de solicitações simultâneas permitido para execução no grupo de carga de trabalho. value precisa ser 0 ou um inteiro positivo. A configuração padrão de value, 0, permite solicitações ilimitadas. Quando as solicitações simultâneas máximas são alcançadas, um usuário nesse grupo pode entrar, mas é colocado em estado de espera até que as solicitações simultâneas fiquem abaixo do valor especificado.

USING { pool_name | "default" }

Associa o grupo de cargas de trabalho ao pool de recursos definido pelo usuário, identificado por pool_name, o que, na realidade, coloca o grupo de cargas de trabalho no pool de recursos. Se pool_name não é fornecido ou se o argumento USING não é usado, o grupo de carga de trabalho é colocado no pool padrão predefinido do Resource Governor.

A opção "default" diferencia maiúsculas e minúsculas e deve estar entre aspas ("") ou colchetes ([]) quando usada com ALTER WORKLOAD GROUP para evitar conflito com DEFAULT, que é uma palavra reservada do sistema. Para obter mais informações, consulte Database Identifiers.

Comentários

ALTER WORKLOAD GROUP é permitido no grupo padrão.

As alterações na configuração do grupo de cargas de trabalho não entrarão em vigor enquanto ALTER RESOURCE GOVERNOR RECONFIGURE não for executado. Ao alterar um plano que afeta a configuração, a nova configuração apenas terá efeito nos planos anteriormente armazenados em cache após a execução de DBCC FREEPROCCACHE (*pool_name*), onde pool_name é o nome de um pool de recursos do Resource Governor ao qual o grupo de carga de trabalho está associado.

  • Se você estiver alterando MAX_DOP para 1, a execução de DBCC FREEPROCCACHE não será necessária, porque os planos paralelos podem ser executados em modo serial. No entanto, isso pode não ser tão eficiente quanto um plano compilado como um plano serial.

  • Se você estiver alterando MAX_DOP de 1 para 0 ou para um valor maior que 1, a execução de DBCC FREEPROCCACHE não será necessária. No entanto, os planos seriais não podem ser executados em paralelo, portanto, limpar o respectivo cache possibilitará a compilação de novos planos usando paralelismo.

Cuidado

A limpeza de planos armazenados em cache de um pool de recursos que está associado a mais de um grupo de carga de trabalho afetará todos os grupos de cargas de trabalho com o pool de recursos definido pelo usuário identificado por pool_name.

Ao executar instruções DDL, você deve estar familiarizado com os estados do Resource Governor. Para obter mais informações, consulte Resource Governor.

REQUEST_MEMORY_GRANT_PERCENT: no SQL Server 2005 (9.x), a criação de índice tem permissão para usar mais memória do workspace do que a concedida inicialmente para melhorar o desempenho. Esse tratamento especial tem suporte do Administrador de Recursos em versões posteriores. No entanto, a concessão inicial e qualquer concessão de memória adicional estão limitadas pelas configurações de pool de recursos e de grupo de cargas de trabalho.

Criação de índice em uma tabela particionada

A memória consumida pela criação de índice na tabela particionada não alinhada é proporcional ao número de partições envolvidas. Se a memória total necessária exceder o limite por consulta (REQUEST_MAX_MEMORY_GRANT_PERCENT) imposto pela configuração de grupo de cargas de trabalho do Resource Governor, poderá ocorrer uma falha na criação do índice. Como o grupo de cargas de trabalho "padrão" permite que uma consulta exceda o limite por consulta com o mínimo de memória requerida para iniciar, para compatibilidade com o SQL Server 2005 (9.x), o usuário talvez possa executar a mesma criação de índice no grupo de cargas de trabalho "padrão" caso o pool de recursos "padrão" tenha memória total suficiente configurada para executar tal consulta.

Permissões

Requer a permissão CONTROL SERVER.

Exemplos

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

ALTER WORKLOAD GROUP "default"
WITH (IMPORTANCE = LOW);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO

O exemplo a seguir mostra como mover um grupo de cargas de trabalho do pool em que ele se encontra para o pool padrão.

ALTER WORKLOAD GROUP adHoc
USING [default];
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO

Confira também

* Azure Synapse
Analytics *
 

 

Azure Synapse Analytics

Altera um grupo de carga de trabalho existente.

Consulte a seção comportamento de ALTER WORKLOAD GROUP abaixo para obter mais detalhes sobre como o ALTER WORKLOAD GROUP se comporta em um sistema com solicitações em execução e em 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 de um grupo de carga de trabalho definido pelo usuário existente que está sendo alterado. group_name não é alterável.

MIN_PERCENTAGE_RESOURCE = value

value é um intervalo de inteiros 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. A alteração de MIN_PERCENTAGE_RESOURCE exige 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, confira a seção de comportamento ALTER WORKLOAD GROUP neste artigo.

CAP_PERCENTAGE_RESOURCE = value

value é um intervalo de inteiros que vai de 1 a 100. O valor de CAP_PERCENTAGE_RESOURCE precisa ser maior que MIN_PERCENTAGE_RESOURCE. A alteração de CAP_PERCENTAGE_RESOURCE exige 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, confira a seção de comportamento ALTER WORKLOAD GROUP neste artigo.

REQUEST_MIN_RESOURCE_GRANT_PERCENT = value

value é um decimal com um intervalo entre 0,75 e 100,00. O valor de 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 = value

value é um decimal e precisa 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 no grupo de carga de trabalho.

QUERY_EXECUTION_TIMEOUT_SEC = value

Altera o tempo máximo, em segundos, que uma consulta pode ser executada antes de ser cancelada. O valor precisa ser zero ou um inteiro positivo. A configuração padrão de value é 0, o que significa ilimitado.

Permissões

Exige a permissão CONTROL DATABASE.

Exemplo

O exemplo abaixo verifica os valores na exibição de catálogo para um grupo de carga de trabalho chamado wgDataLoads e 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 do ALTER WORKLOAD GROUP

A qualquer momento, há três tipos de solicitação no sistema:

  • Solicitações que ainda não foram classificadas.
  • Solicitações classificadas que estão 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 em que as configurações entram em vigor será diferente.

Importance ou query_execution_timeout

Para as propriedades importance e query_execution_timeout, as solicitações não classificadas escolhem 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 estar executando consultas 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 operam com a configuração antiga. As solicitações em espera e as solicitações não classificadas escolhem os novos valores de configuração. A solicitação ALTER WORKLOAD GROUP é executada imediatamente, independentemente de estar executando consultas no grupo de carga de trabalho.

MIN_PERCENTAGE_RESOURCE ou CAP_PERCENTAGE_RESOURCE

Para MIN_PERCENTAGE_RESOURCE e CAP_PERCENTAGE_RESOURCE, as solicitações em execução operam com a configuração antiga. As solicitações em espera e as solicitações não classificadas escolhem os novos valores de configuração.

Alterar MIN_PERCENTAGE_RESOURCE e CAP_PERCENTAGE_RESOURCE requer o esvaziamento das 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 as 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 que utilizam apenas os recursos necessários do pool compartilhado sejam concluídas. A operação ALTER WORKLOAD GROUP terá prioridade de acesso a recursos compartilhados em relação a outras solicitações aguardando execução 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 ficaria atrás na fila das solicitações de grupo de carga de trabalho de criação ou de remoção já enviadas. Se um lote de instruções de alteração for enviado de uma vez, elas serão processadas na ordem em que forem enviadas.

Confira também