CRIAR GRUPO DE CARGA DE TRABALHO (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
Cria um grupo de carga 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 suportados pelas edições do SQL Server, consulte edições e recursos com suporte do SQL Server 2022.
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
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 para o grupo de carga de trabalho. group_name é alfanumérico, pode ter até 128 caracteres, deve ser exclusivo dentro de uma instância do Mecanismo de Banco de Dados e deve estar em conformidade com as regras para identificadores de banco de dados.
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.
external_pool_name EXTERNOS | [padrão]
Aplica-se a: SQL Server 2016 (13.x) e posterior.
O grupo de carga de trabalho pode especificar um pool de recursos externos. 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 externos 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 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.
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
.
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
- Administrador de recursos
- Grupo de carga de trabalho do administrador de recursos
- Criar um grupo de carga de trabalho
- ALTERAM O 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
Cria um grupo de carga 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 suportados pelas edições do SQL Server, consulte edições e recursos com suporte do SQL Server 2022.
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
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 para o grupo de carga de trabalho. group_name é alfanumérico, pode ter até 128 caracteres, deve ser exclusivo dentro de uma instância do Mecanismo de Banco de Dados e deve estar em conformidade com as regras para identificadores de banco de dados.
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.
external_pool_name EXTERNOS | [padrão]
Aplica-se a: SQL Server 2016 (13.x) e posterior.
O grupo de carga de trabalho pode especificar um pool de recursos externos. 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 externos 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 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.
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
.
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
- Administrador de recursos
- Grupo de carga de trabalho do administrador de recursos
- Criar um grupo de carga de trabalho
- ALTERAM O 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
Cria um grupo de carga de trabalho. Os grupos de carga de trabalho são contêineres para um conjunto de solicitações e são a base para como o gerenciamento de carga de trabalho é configurado em um sistema. Os grupos de carga de trabalho fornecem a capacidade de reservar recursos para isolamento de carga de trabalho, conter recursos, definir recursos por solicitação e aderir a regras de execução. Quando a instrução for concluída, as configurações estarão em vigor.
Transact-SQL convenções de sintaxe
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. Pode ter até 128 caracteres e deve ser exclusivo dentro da instância.
MIN_PERCENTAGE_RESOURCE = valor
Especifica uma alocação mínima garantida de recursos para esse grupo de carga de trabalho que não é compartilhada com outros grupos de carga de trabalho. A memória é o único recurso regido por este parâmetro.
valor é um intervalo inteiro 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 para min_percentage_resource não pode ser maior que cap_percentage_resource. Existem valores efetivos mínimos permitidos por nível de serviço. Consulte de Valores Efetivos para obter mais detalhes.
CAP_PERCENTAGE_RESOURCE = valor
Especifica a utilização máxima de recursos 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 inteiro permitido para o valor é de 1 a 100. O valor para cap_percentage_resource deve ser maior que min_percentage_resource. O valor efetivo para cap_percentage_resource pode ser reduzido se min_percentage_resource configurado maior que zero em outros grupos de carga de trabalho.
REQUEST_MIN_RESOURCE_GRANT_PERCENT = valor
Define a quantidade mínima de recursos alocados por solicitação. A memória é o único recurso regido por este parâmetro.
valor é um parâmetro obrigatório com um intervalo decimal entre 0,75 e 100,00. O valor para request_min_resource_grant_percent deve ser um múltiplo de 0,25, deve ser um fator de min_percentage_resource e ser inferior a cap_percentage_resource. Existem valores efetivos mínimos permitidos por nível de serviço. Consulte de 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 usados para classes de recursos como uma diretriz para request_min_resource_grant_percent. A tabela abaixo contém alocações de recursos para Gen2.
Classe de recurso | Percentagem de recursos |
---|---|
Pequenorc | 3% |
Mediumrc | 10% |
Largerc | 22% |
Xlargerc | 70% |
REQUEST_MAX_RESOURCE_GRANT_PERCENT = valor
Define a quantidade máxima de recursos alocados por solicitação. A memória é o único recurso regido por este parâmetro.
valor é um parâmetro decimal opcional com um valor padrão igual ao request_min_resource_grant_percent.
valor 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 para uma solicitação.
IMPORTÂNCIA = { BAIXA | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | ALTA }
Especifica a importância padrão de uma solicitação para o grupo de carga de trabalho. A importância é uma das seguintes, sendo NORMAL o padrão:
- BAIXO
- BELOW_NORMAL
- NORMAL (padrão)
- ABOVE_NORMAL
- ALTO
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 importância no nível do classificador, o que pode substituir a configuração de importância do grupo de carga de trabalho. Isso permite a diferenciação de importância para solicitações dentro de um grupo de carga de trabalho para obter acesso a recursos não reservados mais rapidamente. Quando a soma de min_percentage_resource entre grupos de carga de trabalho é inferior a 100, há recursos não reservados atribuídos com base na importância.
QUERY_EXECUTION_TIMEOUT_SEC = valor
Especifica o tempo máximo, em segundos, que uma consulta pode executar antes de ser cancelada.
valor deve ser 0 ou um número inteiro positivo. A configuração padrão para o valor é 0, cuja consulta nunca expira. QUERY_EXECUTION_TIMEOUT_SEC conta quando a consulta está em estado de execução, não quando a consulta está na fila.
Comentários
Os grupos de carga de trabalho correspondentes a classes de recursos são criados automaticamente para compatibilidade com versões anteriores. Esses grupos de carga de trabalho definidos pelo sistema não podem ser descartados. Podem ser criados 8 grupos de carga de trabalho adicionais definidos pelo utilizador.
Se um grupo de carga de trabalho for criado com min_percentage_resource
maior que zero, a instrução CREATE WORKLOAD GROUP
ficará 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, é necessário um mínimo de 25% recursos por solicitação. Se o grupo de carga de trabalho estiver configurado com 3% 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 dimensionada para DW1000c, os valores configurados e efetivos para ambos os parâmetros serão 3% porque 3% é o valor mínimo suportado nesse nível de serviço. Se a instância for dimensionada acima de DW1000c, os valores configurados e efetivos para ambos os parâmetros permanecerão em 3%. Consulte a tabela abaixo para obter mais detalhes sobre os valores efetivos nos diferentes níveis de serviço.
Nível de Serviço | Menor valor 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 min_percentage_resource
configurado min_percentage_resource
menos eficaz tem o valor ajustado para zero em tempo de execução. Quando isso acontece, os recursos configurados para min_percentage_resource
são compartilháveis em 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 suportado em DW1000c).
wgAdhoc
na DW100c teria um min_percentage_resource efetivo de 0%. Os 10% configurados para wgAdhoc
seriam compartilhados em 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
for 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 a visualização do sistema sys.dm_workload_management_workload_groups_stats.
Permissões
Requer permissão CONTROL DATABASE