Compartilhar via


CREATE WORKLOAD CLASSIFIER (Transact-SQL)

Aplica-se a: Azure Synapse Analytics

Cria um objeto de classificador para uso no gerenciamento de carga de trabalho. O classificador alinha solicitações de entrada a um grupo de carga de trabalho com base nos parâmetros especificados na definição de instrução do classificador. Os classificadores são avaliados com o envio de cada solicitação. Se uma solicitação não corresponder a um classificador, ela será atribuída ao grupo de carga de trabalho padrão. O grupo de carga de trabalho padrão é a classe de smallrc recurso.

Observação

A classificação do comportamento de MIs (identidades gerenciadas) difere entre o pool de SQL dedicado nos workspaces do Azure Synapse e o pool de SQL dedicado autônomo (antigo SQL DW). Enquanto a MI do pool de SQL dedicado autônomo mantém a identidade atribuída, os workspaces do Azure Synapse adicionam MI à função dbo. Isso não pode ser alterado. A função dbo , por padrão, é classificada como smallrc. A criação de um classificador para a função dbo permite atribuir solicitações a um grupo de carga de trabalho diferente do smallrc. Se dbo sozinho for muito genérico para classificação e tiver impactos mais amplos, considere usar a classificação baseada em rótulo, sessão ou tempo em conjunto com a classificação de função dbo .

Convenções de sintaxe de Transact-SQL

Sintaxe

CREATE WORKLOAD CLASSIFIER classifier_name
WITH
    ( WORKLOAD_GROUP = 'name'
    , MEMBERNAME = 'security_account'
    [ [ , ] WLM_LABEL = 'label' ]
    [ [ , ] WLM_CONTEXT = 'context' ]
    [ [ , ] START_TIME = 'HH:MM' ]
    [ [ , ] END_TIME = 'HH:MM' ]
    [ [ , ] IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH } ] )
[ ; ]

Observação

Não há suporte a essa sintaxe para o pool de SQL sem servidor no Azure Synapse Analytics.

Argumentos

classifier_name

Especifique o nome pelo qual o classificador de carga de trabalho é identificado. classifier_name é sysname. Esse parâmetro pode ter até 128 caracteres e deve ser exclusivo na instância.

WORKLOAD_GROUP = 'nome'

Quando as condições são atendidas pelas regras de classificador, o nome mapeia a solicitação para um grupo de carga de trabalho. name é sysname. Esse parâmetro pode ter até 128 caracteres e deve ser um nome de grupo de carga de trabalho válido no momento da criação do classificador.

Os grupos de carga de trabalho disponíveis podem ser encontrados na exibição de catálogo sys.workload_management_workload_groups.

NOME_DO_MEMBRO = 'security_account'

A conta de segurança usada para classificar. security_account é sysname, sem padrão. security_account pode ser um usuário de banco de dados, função de banco de dados, logon do Microsoft Entra ou grupo do Microsoft Entra.

Observação

Use a user_name() função, quando conectada ao sistema, para verificar se o MEMBERNAME processo de classificação usará para classificar a solicitação. Verificar o com a função pode ser útil para solucionar problemas de user_name() classificação da MEMBERNAME ID do Microsoft Entra ou da entidade de serviço. Se user_name() retornar dbo, você pode usar dbo como o MEMBERNAME para classificar as solicitações. Todos os membros da função dbo serão classificados. Parâmetros de classificação adicionais, como WLM_LABEL ou WLM_CONTEXT também podem ser usados para classificar especificamente solicitações de várias contas do Microsoft Entra mapeadas para a função dbo .

WLM_LABEL

Especifica o valor do rótulo com que uma solicitação pode ser classificada. Label é um parâmetro opcional do tipo nvarchar(255). Use OPTION (LABEL) na solicitação para corresponder à configuração do classificador.

Por exemplo:

CREATE WORKLOAD CLASSIFIER wcELTLoads
WITH (
    WORKLOAD_GROUP = 'wgDataLoad',
    MEMBERNAME = 'ELTRole',
    WLM_LABEL = 'dimension_loads'
);
    
SELECT COUNT(*) FROM DimCustomer
OPTION (LABEL = 'dimension_loads');

WLM_CONTEXT

Especifica o valor do contexto da sessão com que uma solicitação pode ser classificada. WLM_CONTEXTé um parâmetro opcional do tipo nvarchar(255). Use o sys.sp_set_session_context com o nome da variável igual a wlm_context antes de enviar uma solicitação para definir o contexto da sessão.

Por exemplo:

CREATE WORKLOAD CLASSIFIER wcDataLoad
WITH (
    WORKLOAD_GROUP = 'wgDataLoad',
    MEMBERNAME = 'ELTRole',
    WLM_CONTEXT = 'dim_load'
);

--set session context
EXEC sys.sp_set_session_context @key = 'wlm_context', @value = 'dim_load';

--run multiple statements using the wlm_context setting
SELECT COUNT(*) FROM stg.daily_customer_load;
SELECT COUNT(*) FROM stg.daily_sales_load;

--turn off the wlm_context session setting
EXEC sys.sp_set_session_context @key = 'wlm_context', @value = NULL;

START_TIME e END_TIME

Especifica a hora de início e a hora de término em relação às quais uma solicitação pode ser classificada. Ambos START_TIME e END_TIME são do HH:mm formato no fuso horário UTC. START_TIME e END_TIME devem ser especificados juntos.

Por exemplo:

CREATE WORKLOAD CLASSIFIER wcELTLoads
WITH (
    WORKLOAD_GROUP = 'wgDataLoads',
    MEMBERNAME = 'ELTRole',
    START_TIME = '22:00',
    END_TIME = '02:00'
);

IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH }

Especifica a importância relativa de uma solicitação. IMPORTANCE é uma das seguintes opções:

  • LOW
  • BELOW_NORMAL
  • NORMAL (padrão)
  • ABOVE_NORMAL
  • HIGH

Se IMPORTANCE não for especificado, a configuração de importância do grupo de carga de trabalho será usada. A importância padrão do grupo de carga de trabalho é NORMAL. A importância influencia a ordem na qual as solicitações são agendadas, oferecendo primeiro acesso a recursos e bloqueios.

Comentários

O número máximo de classificadores definidos pelo usuário é 100. Não há suporte para configurações adicionais além desse limite. Recomendamos que você agrupe classificadores em uma categoria comum para aplicação eficiente de uma única configuração, em várias cargas de trabalho ou usuários.

Peso do parâmetro de classificação

Uma solicitação pode corresponder a vários classificadores. Há uma ponderação para os parâmetros do classificador. O classificador de correspondência com maior peso é usado para atribuir um grupo de carga de trabalho e uma importância. O peso é o seguinte:

Parâmetro do classificador Peso
USER 64
ROLE 32
WLM_LABEL 16
WLM_CONTEXT 8
START_TIME/END_TIME 4

Considere as seguintes configurações de classificador.

CREATE WORKLOAD CLASSIFIER classifierA
WITH (
    WORKLOAD_GROUP = 'wgDashboards',
    MEMBERNAME = 'userloginA',
    IMPORTANCE = HIGH,
    WLM_LABEL = 'salereport'
);

CREATE WORKLOAD CLASSIFIER classifierB
WITH (
    WORKLOAD_GROUP = 'wgUserQueries',
    MEMBERNAME = 'userloginA',
    IMPORTANCE = LOW,
    START_TIME = '18:00',
    END_TIME = '07:00'
);

O usuário userloginA está configurado para os dois classificadores. Se userloginA executar uma consulta com um rótulo igual a salesreport entre 18h e 7h UTC, a solicitação será classificada para o wgDashboards grupo de carga de trabalho com HIGH importância. A expectativa pode ser classificar a solicitação como wgUserQueries com importância para relatórios fora do horário comercial, mas a ponderação de WLM_LABEL é maior queEND_TIMESTART_TIME/ .LOW A ponderação de classifierA é 80 (64 para o usuário, mais 16 para WLM_LABEL). A ponderação de classifierB é 68 (64 para o usuário, 4 para START_TIME/END_TIME). Nesse caso, você pode adicionar WLM_LABEL ao classifierB.

Para obter mais informações, consulte Ponderação de carga de trabalho.

Permissões

Requer a permissão CONTROL DATABASE.

Exemplos

O exemplo seguinte mostra como criar um classificador de carga de trabalho denominado wgcELTRole. Ele usa o staticrc20 grupo de carga de trabalho, o usuário ELTRolee define a IMPORTÂNCIA como ABOVE_NORMAL.

CREATE WORKLOAD CLASSIFIER wgcELTRole
WITH (
    WORKLOAD_GROUP = 'staticrc20',
    MEMBERNAME = 'ELTRole',
    IMPORTANCE = ABOVE_NORMAL
);