Compartilhar via


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 e default, 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, Defaulte 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 de MAX_DOP do 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.
  • O grupo de carga de trabalho MAX_DOP substitui a configuração do servidor max degree of parallelism e a configuração no escopo do banco de dados MAXDOP.

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

* 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 e default, 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, Defaulte 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 de MAX_DOP do 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.
  • O grupo de carga de trabalho MAX_DOP substitui a configuração do servidor max degree of parallelism e a configuração no escopo do banco de dados MAXDOP.

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

* 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

Confira também