Compartilhar via


CREATE WORKLOAD GROUP (Transact-SQL)

Cria um grupo de carga de trabalho do Administrador de recursos e o associa a um pool de recursos do Administrador de recursos. O Administrador de Recursos não está disponível em todas as edições do Microsoft SQL Server. Para obter uma lista de recursos com suporte nas edições do SQL Server, consulte Recursos compatíveis com as edições do SQL Server 2012.

Ícone de vínculo de tópico Convenções da 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" } ]
[ ; ]

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 dentro de uma instância do SQL Server e deve obedecer às regras de identificadores.

  • IMPORTANCE = { LOW | MEDIUM | HIGH }
    Especifica a importância relativa de uma solicitação no grupo de carga de trabalho. A importância é uma das seguintes, com MEDIUM sendo o padrão:

    • LOW

    • MEDIUM

    • HIGH

    ObservaçãoObservação

    Internamente, cada configuração de importância é armazenada como um número usado para cálculos.

    IMPORTANCE é local para o pool de recursos; grupos de carga de trabalho de importâncias diferentes no mesmo pool de recursos afetam uns aos outros, mas não afetam grupos de carga de trabalho em outro pool de recursos.

  • REQUEST_MAX_MEMORY_GRANT_PERCENT =value
    Especifica o máximo de memória que uma única solicitação pode usar do pool. Essa porcentagem é relativa ao tamanho do pool de recursos especificado por MAX_MEMORY_PERCENT.

    ObservaçãoObservação

    A quantidade especificada se refere apenas à memória de concessão de execução da consulta.

    value deve ser 0 ou um número inteiro positivo. O intervalo permitido para value é de 0 a 100. A configuração padrão de value é 25.

    Observe o seguinte:

    • A configuração de value como 0 impede a execução de consultas com as operações SORT e HASH JOIN em grupos de carga de trabalho definidos pelo usuário.

    • Não é recomendável definir value com um valor maior que 70, pois o servidor pode não conseguir separar memória livre suficiente se outras consultas simultâneas estiverem sendo executadas. Isso pode eventualmente levar ao erro 8645, tempo limite da consulta excedido.

    ObservaçãoObservação

    Se os requisitos de memória de consulta excederem o limite especificado por esse parâmetro, o servidor fará o seguinte:

    Para grupos de carga de trabalho definidos pelo usuário, o servidor tenta reduzir o grau de paralelismo da consulta, até que o requisito de memória caia abaixo do limite, ou até que o grau de paralelismo seja igual a 1. Se o requisito de memória de consulta ainda for maior que o limite, ocorrerá o erro 8657.

    Para grupos de carga de trabalho internos e padrão, o servidor permite que a consulta obtenha a memória necessária.

    Esteja ciente de que ambos os casos estarão sujeitos ao erro de tempo limite 8645 se a memória física do servidor for insuficiente.

  • REQUEST_MAX_CPU_TIME_SEC =value
    Especifica o tempo máximo de CPU, em segundos, que uma solicitação pode usar. value deve ser 0 ou um número inteiro positivo. A configuração padrão para value é 0, o que significa ilimitado.

    ObservaçãoObservação

    O Administrador de Recursos não impedirá a continuação de uma solicitação se o tempo máximo for excedido. Porém, um evento será gerado. Para obter mais informações, consulte Classe de evento CPU Threshold Exceeded.

  • REQUEST_MEMORY_GRANT_TIMEOUT_SEC =value
    Especifica o tempo máximo, em segundos, que uma consulta pode esperar pela disponibilização de uma concessão de memória (memória do buffer do trabalho).

    ObservaçãoObservação

    Nem sempre uma consulta falha quando o tempo limite de concessão de memória é atingido. A consulta falhará somente se houver muitas consultas simultâneas em execução. Caso contrário, a consulta poderá obter apenas a concessão de memória mínima, resultando em uma queda no desempenho de consulta.

    value deve ser 0 ou um número 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.

  • MAX_DOP =value
    Especifica o DOP (grau máximo de paralelismo) para solicitações paralelas. value deve ser 0 ou um número inteiro positivo. O intervalo permitido para value varia de 0 a 64. A configuração padrão para value, 0, usa a configuração global. MAX_DOP é tratado como segue:

    • MAX_DOP como dica de consulta é válido, contanto que não exceda o grupo de carga de trabalho MAX_DOP. A partir do SQL Server 2008, se o valor de dica de consulta MAXDOP exceder o valor que está configurado usando o Administrador de Recursos, o Mecanismo de Banco de Dados usará o valor MAXDOP do Administrador de Recursos.

    • MAX_DOP como uma dica de consulta sempre substitui sp_configure 'max degree of parallelism'.

    • O grupo de carga de trabalho MAX_DOP substitui sp_configure 'max degree of parallelism'.

    • Se a consulta for marcada como serial em tempo de compilação, ela não poderá ser revertida em paralela em tempo de execução, independentemente do grupo de carga de trabalho ou da configuração sp_configure.

    • Depois de ser configurado, o DOP só pode ser reduzido sob pressão de concessão de memória. A reconfiguração do grupo de carga de trabalho não é visível durante a espera na fila de concessão de memória.

  • GROUP_MAX_REQUESTS =value
    Especifica o número máximo de solicitações simultâneas permitido para execução no grupo de carga de trabalho. value deve ser 0 ou um número inteiro positivo. A configuração padrão de value, 0, permite solicitações ilimitadas. Quando as solicitações simultâneas máximas são alcançadas, um usuário nesse grupo pode fazer logon, mas é colocado em um estado de espera até que as solicitações simultâneas sejam ignoradas abaixo do valor especificado.

  • USING { pool_name | "default" }
    Associa o grupo de carga de trabalho ao pool de recursos definido pelo usuário identificado por pool_name. Na realidade, isso coloca o grupo de carga de trabalho no pool de recursos. Se pool_name não for fornecido ou se o argumento USING não for usado, o grupo de carga de trabalho será colocado no pool padrão predefinido do Administrador de Recursos.

    "default" é uma palavra reservada e, quando usada com USING, deve ficar entre aspas ("") ou colchetes ([]).

    ObservaçãoObservação

    Grupos de cargas de trabalho e pools de recursos predefinidos usam nomes em letras minúsculas, como "default". Isso deve ser levado em consideração nos servidores que usam agrupamento com diferenciação de maiúsculas e minúsculas. Os servidores com agrupamento sem diferenciação de maiúsculas e minúsculas, como SQL_Latin1_General_CP1_CI_AS, tratarão "default" e "Default" da mesma maneira.

Comentários

REQUEST_MEMORY_GRANT_PERCENT: a criação de índice pode usar mais memória de espaço de trabalho do que aquela inicialmente concedida a fim de melhorar o desempenho. Esse tratamento especial tem o suporte do Administrador de Recursos no SQL Server 2012. Porém, a concessão inicial e qualquer concessão de memória adicional estão limitadas pelas configurações de pool de recursos e de grupo de carga de trabalho.

Criação de índice em uma tabela particionada

A memória consumida pela criação de índice na tabela particionada desalinhada é proporcional ao número de partições envolvidas. Se a memória total necessária exceder o limite por consulta (REQUEST_MAX_MEMORY_GRANT_PERCENT) imposto pela configuração de grupo de cargas de trabalho, poderá ocorrer uma falha na criação do índice. Como o grupo de carga de trabalho "padrão" permite que uma consulta exceda o limite por consulta com o mínimo de memória necessária, o usuário talvez possa executar a mesma criação de índice no grupo de carga de trabalho "padrão" caso o pool de recursos "padrão" tenha memória total suficiente configurada para executar tal consulta.

Permissões

Requer a permissão CONTROL SERVER.

Exemplos

O exemplo seguinte mostra como criar um grupo de carga de trabalho denominado newReports. Ele usa as configurações padrão do Administrador de Recursos e está no pool padrão desse Administrador. O exemplo especifica o pool default, mas isso não é necessário.

CREATE WORKLOAD GROUP newReports
    USING "default" ;
GO

Consulte também

Referência

ALTER WORKLOAD GROUP (Transact-SQL)

DROP WORKLOAD GROUP (Transact-SQL)

CREATE RESOURCE POOL (Transact-SQL)

ALTER RESOURCE POOL (Transact-SQL)

DROP RESOURCE POOL (Transact-SQL)

ALTER RESOURCE GOVERNOR (Transact-SQL)