CREATE 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
Cria um grupo de cargas de trabalho do administrador de recursos e associa o grupo de carga de trabalho a um pool de recursos do administrador de recursos.
O administrador de recursos não está disponível em todas as edições do SQL Server. Para obter uma lista de recursos com suporte nas edições do SQL Server, confira Edições e recursos com suporte no SQL Server 2022.
Observação
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.
Convenções de sintaxe Transact-SQL.
Sintaxe
CREATE WORKLOAD GROUP group_name
[ 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] ]
[ [ , ] EXTERNAL external_pool_name | [default] ]
} ]
[ ; ]
Argumentos
group_name
É o nome definido pelo usuário do grupo de carga de trabalho. group_name é alfanumérico, pode ter até 128 caracteres, deve ser exclusivo em uma instância do Mecanismo de Banco de Dados e deve estar em conformidade com as regras para identificadores de banco de dados .
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 = 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
edefault
, 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 = 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 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 CPU Threshold Exceeded.
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 = 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. value precisa ser 0 ou 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.
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 = valor
Especifica o grau máximo de paralelismo (MAXDOP
) para execução de consulta paralela. O intervalo permitido para value é de 0 a 64. A configuração padrão para value, 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 permitido para execução no grupo de carga de trabalho. value precisa ser 0 ou um inteiro positivo. A configuração padrão de 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
, Default
e DEFAULT
como o mesmo valor.
EXTERNAL_POOL_NAME EXTERNO | [padrão]
Aplica-se a: SQL Server 2016 (13.x) e posterior.
O grupo de carga de trabalho pode especificar um pool de recursos externo. Você pode definir um grupo de carga de trabalho e associá-lo a dois pools:
- Um pool de recursos para as cargas de trabalho do Mecanismo de Banco de Dados.
- Um pool de recursos externo para processos externos. Para obter mais informações, consulte sp_execute_external_script.
Comentários
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 deMAX_DOP
do 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. - O grupo de carga de trabalho
MAX_DOP
substitui a configuração do servidormax degree of parallelism
e a configuração no escopo do banco de dadosMAXDOP
.
O limite de MAXDOP
é definido por tarefa. Não é um limite por solicitação ou por 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.
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
.
Exemplo
Cria um grupo de carga de trabalho chamado newReports
no pool de recursos default
e limita a concessão máxima de memória, o tempo máximo de CPU para uma solicitação e MAXDOP
.
CREATE WORKLOAD GROUP newReports
WITH (
REQUEST_MAX_MEMORY_GRANT_PERCENT = 2.5,
REQUEST_MAX_CPU_TIME_SEC = 100,
MAX_DOP = 4
)
USING [default];
Conteúdo relacionado
- Tutorial : exemplos de configuração do administrador de recursos e práticas recomendadas
- do administrador de recursos
- grupo de cargas de trabalho do administrador de recursos
- Criar um grupo de carga de trabalho
- ALTER WORKLOAD GROUP
- DROP WORKLOAD GROUP
- CRIAR DO POOL DE RECURSOS
- ALTER RESOURCE POOL
- DROP RESOURCE POOL
- ALTER RESOURCE GOVERNOR
* Instância Gerenciada de SQL *
SQL Server e Instância Gerenciada de SQL
Cria um grupo de cargas de trabalho do administrador de recursos e associa o grupo de carga de trabalho a um pool de recursos do administrador de recursos.
O administrador de recursos não está disponível em todas as edições do SQL Server. Para obter uma lista de recursos com suporte nas edições do SQL Server, confira Edições e recursos com suporte no SQL Server 2022.
Observação
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.
Convenções de sintaxe Transact-SQL.
Sintaxe
CREATE WORKLOAD GROUP group_name
[ 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] ]
[ [ , ] EXTERNAL external_pool_name | [default] ]
} ]
[ ; ]
Argumentos
group_name
É o nome definido pelo usuário do grupo de carga de trabalho. group_name é alfanumérico, pode ter até 128 caracteres, deve ser exclusivo em uma instância do Mecanismo de Banco de Dados e deve estar em conformidade com as regras para identificadores de banco de dados .
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 = 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
edefault
, 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 = 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 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 CPU Threshold Exceeded.
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 = 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. value precisa ser 0 ou 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.
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 = valor
Especifica o grau máximo de paralelismo (MAXDOP
) para execução de consulta paralela. O intervalo permitido para value é de 0 a 64. A configuração padrão para value, 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 permitido para execução no grupo de carga de trabalho. value precisa ser 0 ou um inteiro positivo. A configuração padrão de 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
, Default
e DEFAULT
como o mesmo valor.
EXTERNAL_POOL_NAME EXTERNO | [padrão]
Aplica-se a: SQL Server 2016 (13.x) e posterior.
O grupo de carga de trabalho pode especificar um pool de recursos externo. Você pode definir um grupo de carga de trabalho e associá-lo a dois pools:
- Um pool de recursos para as cargas de trabalho do Mecanismo de Banco de Dados.
- Um pool de recursos externo para processos externos. Para obter mais informações, consulte sp_execute_external_script.
Comentários
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 deMAX_DOP
do 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. - O grupo de carga de trabalho
MAX_DOP
substitui a configuração do servidormax degree of parallelism
e a configuração no escopo do banco de dadosMAXDOP
.
O limite de MAXDOP
é definido por tarefa. Não é um limite por solicitação ou por 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.
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
.
Exemplo
Cria um grupo de carga de trabalho chamado newReports
no pool de recursos default
e limita a concessão máxima de memória, o tempo máximo de CPU para uma solicitação e MAXDOP
.
CREATE WORKLOAD GROUP newReports
WITH (
REQUEST_MAX_MEMORY_GRANT_PERCENT = 2.5,
REQUEST_MAX_CPU_TIME_SEC = 100,
MAX_DOP = 4
)
USING [default];
Conteúdo relacionado
- Tutorial : exemplos de configuração do administrador de recursos e práticas recomendadas
- do administrador de recursos
- grupo de cargas de trabalho do administrador de recursos
- Criar um grupo de carga de trabalho
- ALTER WORKLOAD GROUP
- DROP WORKLOAD GROUP
- CRIAR DO POOL DE RECURSOS
- ALTER RESOURCE POOL
- DROP RESOURCE POOL
- ALTER RESOURCE GOVERNOR
* Azure Synapse
Analytics *
Azure Synapse Analytics
Cria um grupo de carga de trabalho. Grupos de carga de trabalho são contêineres para um conjunto de solicitações e são a base de como o gerenciamento de cargas de trabalho é configurado em um sistema. Os grupos de cargas de trabalho fornecem a capacidade de reservar recursos para ter isolamento da cargas de trabalho, conter recursos, definir recursos por solicitação e aderir às regras de execução. Quando a instrução for concluída, as configurações estarão em vigor.
Convenções de sintaxe de Transact-SQL
CREATE 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 ] )
[ ; ]
group_name
Especifica o nome pelo qual o grupo de carga de trabalho é identificado.
group_name é um sysname. Ele pode ter até 128 caracteres e deve ser exclusivo dentro da instância.
MIN_PERCENTAGE_RESOURCE = value
Especifica uma alocação de recurso mínima garantida para este grupo de carga de trabalho, que não é compartilhada com outros grupos de carga de trabalho. A memória é o único recurso regido por esse parâmetro.
value é um intervalo de inteiros de 0 a 100. A soma de min_percentage_resource em todos os grupos de carga de trabalho não pode exceder 100. O valor de min_percentage_resource não pode ser maior que cap_percentage_resource. Há valores mínimos efetivos permitidos por nível de serviço. Confira Valores Efetivos para obter mais detalhes.
CAP_PERCENTAGE_RESOURCE = value
Especifica a utilização de recursos máxima para todas as solicitações em um grupo de carga de trabalho. Os recursos de CPU e memória são limitados por esse parâmetro. O intervalo de inteiros permitido para o valor é de 1 a 100. O valor de cap_percentage_resource precisa ser maior que min_percentage_resource. O valor efetivo para cap_percentage_resource pode ser reduzido se min_percentage_resource estiver configurado como maior que zero em outros grupos de carga de trabalho.
REQUEST_MIN_RESOURCE_GRANT_PERCENT = value
Define a quantidade mínima de recursos alocados por solicitação. A memória é o único recurso regido por esse parâmetro.
value é um parâmetro obrigatório com um intervalo decimal entre 0,75 e 100,00. O valor de request_min_resource_grant_percent deve ser múltiplo de 0,25, deve ser um fator de min_percentage_resource e ser menor que cap_percentage_resource. Há valores mínimos efetivos permitidos por nível de serviço. Confira Valores Efetivos para obter mais detalhes.
Por exemplo:
CREATE WORKLOAD GROUP wgSample
WITH
( MIN_PERCENTAGE_RESOURCE = 26 -- integer value
, REQUEST_MIN_RESOURCE_GRANT_PERCENT = 3.25 -- factor of 26 (guaranteed a minimum of 8 concurrency)
, CAP_PERCENTAGE_RESOURCE = 100 )
considere os valores que são usados para as classes de recurso como uma diretriz para request_min_resource_grant_percent. A tabela a seguir contém alocações de recursos para Gen2.
Classe de recurso | Porcentagem de recursos |
---|---|
Smallrc | 3% |
Mediumrc | 10% |
Largerc | 22% |
Xlargerc | 70% |
REQUEST_MAX_RESOURCE_GRANT_PERCENT = value
Define a quantidade máxima de recursos alocados por solicitação. A memória é o único recurso regido por esse parâmetro.
value é um parâmetro decimal opcional com um valor padrão igual ao request_min_resource_grant_percent.
value deve ser maior ou igual a request_min_resource_grant_percent. Quando o valor de request_max_resource_grant_percent é maior que request_min_resource_grant_percent e os recursos do sistema estão disponíveis, recursos adicionais são alocados a uma solicitação.
IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH }
Especifica a importância padrão de uma solicitação no grupo de carga de trabalho. A importância é uma das seguintes, com NORMAL sendo o padrão:
- LOW
- BELOW_NORMAL
- NORMAL (padrão)
- ABOVE_NORMAL
- HIGH
A importância definida no grupo de carga de trabalho é uma importância padrão para todas as solicitações no grupo de carga de trabalho. Um usuário também pode definir a importância no nível do classificador, que pode substituir a configuração de importância do grupo de carga de trabalho. Isso permite diferenciar a importância das solicitações em um grupo de carga de trabalho para ter acesso a recursos não reservados mais rapidamente. Quando a soma de min_percentage_resource entre grupos de carga de trabalho é menor que 100, há recursos não reservados que são atribuídos em uma base de importância.
QUERY_EXECUTION_TIMEOUT_SEC = value
Especifica o tempo máximo, em segundos, que uma consulta pode ser executada antes de ser cancelada.
value precisa ser 0 ou um inteiro positivo. A configuração padrão para o valor é 0, em que a consulta nunca expira. QUERY_EXECUTION_TIMEOUT_SEC conta depois que a consulta está em estado de execução, não quando a consulta é enfileirada.
Comentários
Os grupos de carga de trabalho correspondentes às classes de recursos são criados automaticamente para ter compatibilidade com versões anteriores. Esses grupos de carga de trabalho definidos pelo sistema não podem ser descartados. Oito grupos de carga de trabalho adicionais definidos pelo usuário podem ser criados.
Se um grupo de cargas de trabalho for criado com min_percentage_resource
maior que zero, a instrução CREATE WORKLOAD GROUP
entrará na fila até que haja recursos suficientes para criar o grupo de carga de trabalho.
Valores efetivos
Os parâmetros min_percentage_resource
, cap_percentage_resource
, request_min_resource_grant_percent
e request_max_resource_grant_percent
têm valores efetivos que são ajustados no contexto do nível de serviço atual e da configuração de outros grupos de carga de trabalho.
O parâmetro request_min_resource_grant_percent
tem um valor efetivo porque há recursos mínimos necessários por consulta, dependendo do nível de serviço. Por exemplo, no nível de serviço mais baixo, DW100c, são necessários pelo menos 25% dos recursos por solicitação. Se o grupo de carga de trabalho estiver configurado com 3% em request_min_resource_grant_percent
e request_max_resource_grant_percent
, os valores efetivos para ambos os parâmetros serão ajustados para 25% quando a instância for iniciada. Se a instância for expandida para DW1000c, os valores configurados e efetivos para ambos os parâmetros serão de 3%, porque esse é o valor mínimo com suporte no nível de serviço. Se a instância for expandida para um valor maior que DW1000c, os valores configurados e efetivos para ambos os parâmetros permanecerão em 3%. Confira a tabela abaixo para obter mais detalhes sobre os valores efetivos nos diferentes níveis de serviço.
Nível de serviço | Valor mais baixo efetivo para REQUEST_MIN_RESOURCE_GRANT_PERCENT | Máximo de consultas simultâneas |
---|---|---|
DW100c | 25% | 4 |
DW200c | 12,5% | 8 |
DW300c | 8% | 12 |
DW400c | 6,25% | 16 |
DW500c | 5% | 20 |
DW1000c | 3% | 32 |
DW1500c | 3% | 32 |
DW2000c | 2% | 48 |
DW2500c | 2% | 48 |
DW3000c | 1,5% | 64 |
DW5000c | 1,5% | 64 |
DW6000c | 0,75% | 128 |
DW7500c | 0,75% | 128 |
DW10000c | 0,75% | 128 |
DW15000c | 0,75% | 128 |
DW30000c | 0,75% | 128 |
O parâmetro min_percentage_resource
deve ser maior ou igual ao request_min_resource_grant_percent
efetivo. Um grupo de carga de trabalho com um min_percentage_resource
configurado menor do que o min_percentage_resource
efetivo tem o valor ajustado para zero em runtime. Quando isso acontece, os recursos configurados para min_percentage_resource
podem ser compartilhados entre todos os grupos de carga de trabalho. Por exemplo, o grupo de carga de trabalho wgAdHoc
com um min_percentage_resource
de 10% em execução em DW1000c teria um min_percentage_resource
efetivo de 10% (3% é o valor mínimo com suporte em DW1000c).
wgAdhoc
em DW100c teria um min_percentage_resource efetivo de 0%. Os 10% configurados para wgAdhoc
seriam compartilhados entre todos os grupos de carga de trabalho.
O parâmetro cap_percentage_resource
também tem um valor efetivo. Se um grupo de carga de trabalho wgAdhoc
estiver configurado com um cap_percentage_resource
de 100% e outro grupo de carga de trabalho wgDashboards
for criado com 25% min_percentage_resource
, o cap_percentage_resource
efetivo para wgAdhoc
se tornará 75%.
A maneira mais fácil de entender os valores de tempo de execução para seus grupos de carga de trabalho é consultar o modo de exibição do sistema sys.dm_workload_management_workload_groups_stats.
Permissões
Requer a permissão CONTROL DATABASE