Partilhar via


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 *  

de 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 e default, 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, Defaulte 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ção MAX_DOP grupo de carga de trabalho.
  • MAXDOP como uma dica de consulta sempre substitui a configuração do servidor max degree of parallelism. Para obter mais informações, consulte Configuração do servidor : grau máximo de paralelismo.
  • A MAX_DOP do grupo de carga de trabalho substitui a configuração do servidor max degree of parallelism e a configuração com escopo do banco de dados MAXDOP.

O limite de MAXDOP é definido por tarefa. Não é um de solicitação por ou por limite de consulta. Durante a execução de uma consulta paralela, uma única solicitação pode gerar várias tarefas atribuídas a um agendador de . Para obter mais informações, consulte o Thread e o guia de arquitetura de tarefas.

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];

* 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 e default, 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, Defaulte 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ção MAX_DOP grupo de carga de trabalho.
  • MAXDOP como uma dica de consulta sempre substitui a configuração do servidor max degree of parallelism. Para obter mais informações, consulte Configuração do servidor : grau máximo de paralelismo.
  • A MAX_DOP do grupo de carga de trabalho substitui a configuração do servidor max degree of parallelism e a configuração com escopo do banco de dados MAXDOP.

O limite de MAXDOP é definido por tarefa. Não é um de solicitação por ou por limite de consulta. Durante a execução de uma consulta paralela, uma única solicitação pode gerar várias tarefas atribuídas a um agendador de . Para obter mais informações, consulte o Thread e o guia de arquitetura de tarefas.

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];

de instância gerenciada SQL

* 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_percentefetivo . 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

Ver também