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 *
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
, Default
e 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
edefault
, 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
, Default
e 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çãoMAX_DOP
grupo de carga de trabalho. -
MAXDOP
como uma dica de consulta sempre substitui a configuração do servidormax 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 servidormax degree of parallelism
e a configuração com escopo do banco de dadosMAXDOP
.
O limite de MAXDOP
é definido por tarefa. Não é um de solicitação por
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 deDBCC 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, executarDBCC 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;
Conteúdo relacionado
- Administrador de recursos
- Grupo de carga de trabalho do administrador de recursos
- Criar um grupo de carga de trabalho
- Mover um grupo de carga de trabalho
- CRIAR GRUPO DE CARGA DE TRABALHO
- GRUPO DE CARGA DE TRABALHO DE QUEDA
- CRIAR POOL DE RECURSOS
- ALTERAR O POOL DE RECURSOS
- DESCARTAR POOL DE RECURSOS
- ALTERAR O ADMINISTRADOR DE RECURSOS
* 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
, Default
e 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
edefault
, 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
, Default
e 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çãoMAX_DOP
grupo de carga de trabalho. -
MAXDOP
como uma dica de consulta sempre substitui a configuração do servidormax 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 servidormax degree of parallelism
e a configuração com escopo do banco de dadosMAXDOP
.
O limite de MAXDOP
é definido por tarefa. Não é um de solicitação por
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 deDBCC 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, executarDBCC 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;
Conteúdo relacionado
- Administrador de recursos
- Grupo de carga de trabalho do administrador de recursos
- Criar um grupo de carga de trabalho
- Mover um grupo de carga de trabalho
- CRIAR GRUPO DE CARGA DE TRABALHO
- GRUPO DE CARGA DE TRABALHO DE QUEDA
- CRIAR POOL DE RECURSOS
- ALTERAR O POOL DE RECURSOS
- DESCARTAR POOL DE RECURSOS
- ALTERAR O ADMINISTRADOR DE RECURSOS
* 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.