CRIAR CLASSIFICADOR DE CARGA DE TRABALHO (Transact-SQL)

Aplica-se a:Azure Synapse Analytics

Cria um objeto classificador para uso na gestão da carga de trabalho. O classificador atribui pedidos recebidos a um grupo de carga de trabalho com base nos parâmetros especificados na definição da instrução do classificador. Os classificadores são avaliados a cada pedido submetido. Se um pedido não for correspondido a um classificador, é atribuído ao grupo de carga de trabalho predefinido. O grupo de carga de trabalho por defeito é a smallrc classe de recurso.

Note

O comportamento de classificar identidades geridas (MI) difere entre o pool SQL dedicado nos workspaces do Azure Synapse e o pool SQL dedicado independente (anteriormente SQL DW). Enquanto o MI dedicado do pool SQL independente mantém a identidade atribuída, o Azure Synapse Workspaces adiciona MI ao papel do dbo. Isto não pode ser mudado. O papel dbo , por defeito, é classificado como smallrc. Criar um classificador para o papel dbo permite atribuir pedidos a um grupo de carga de trabalho diferente de smallrc. Se a dbo sozinha for demasiado genérica para classificação e tiver impactos mais amplos, considere usar classificação de rótulos, sessões ou baseada no tempo em conjunto com a classificação de papel dbo .

Transact-SQL convenções de sintaxe

Syntax

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 } ] )
[ ; ]

Note

Essa sintaxe não é suportada pelo pool SQL sem servidor no Azure Synapse Analytics.

Arguments

classifier_name

Especifica o nome pelo qual o classificador de carga de trabalho é identificado. classifier_name é sysname. Este parâmetro pode ter até 128 caracteres e deve ser único dentro da instância.

WORKLOAD_GROUP = 'nome'

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

Os grupos de carga de trabalho disponíveis podem ser encontrados sys.workload_management_workload_groups vista de catálogo.

NOME DO MEMBRO = 'security_account'

A conta de segurança usada para classificar contra. security_account é sysname, sem padrão. security_account pode ser um utilizador de base de dados, função na base de dados, Microsoft Entra login ou Microsoft Entra grupo.

Note

Use a user_name() função, quando ligada ao sistema, para verificar que MEMBERNAME o processo de classificação irá usar para classificar o pedido. Verificar com MEMBERNAME a user_name() função pode ser útil para resolver problemas com o Microsoft Entra ID ou questões de classificação do principal de serviço. Se user_name() retornar dbo, podes usar o dbo como MEMBERNAME para classificar os pedidos. Todos os membros do papel dbo serão classificados. Parâmetros adicionais de classificação, como WLM_LABEL ou WLM_CONTEXT podem também ser usados para classificar especificamente pedidos de múltiplas contas Microsoft Entra que correspondem ao papel dbo.

WLM_LABEL

Especifica o valor do rótulo contra o qual um pedido pode ser classificado. Rótulo é um parâmetro opcional do tipo nvarchar(255). Use a OPTION (LABEL) no pedido 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 contra o qual um pedido pode ser classificado. 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 submeter um pedido 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 de fim contra a qual um pedido pode ser classificado. Ambos START_TIME são END_TIME do HH:mm formato do fuso horário UTC. START_TIME e END_TIME devem ser especificados em conjunto.

Por exemplo:

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

IMPORTÂNCIA = { BAIXA | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | ALTO }

Especifica a importância relativa de um pedido. IMPORTANCE é uma das seguintes opções:

  • LOW
  • BELOW_NORMAL
  • NORMAL (predefinição)
  • ABOVE_NORMAL
  • HIGH

Se IMPORTANCE não for especificado, é usada a definição de importância do grupo de carga de trabalho. A importância padrão do grupo de carga de trabalho é NORMAL. A importância influencia a ordem em que os pedidos são agendados, dando assim primeiro acesso a recursos e bloqueios.

Observações

O número máximo de classificadores definidos pelo utilizador é 100. Não são suportadas configurações adicionais além deste limite. Recomendamos que agrupe os classificadores numa categoria comum para a aplicação eficiente de uma única definição em várias cargas de trabalho ou utilizadores.

Ponderação dos parâmetros de classificação

Um pedido pode ser comparado com múltiplos classificadores. Há uma ponderação para os parâmetros do classificador. O classificador de correspondência de maior peso é usado para atribuir um grupo de carga de trabalho e importância. A ponderação é a seguinte:

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

Considere as seguintes configurações de classificadores.

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 utilizador userloginA está configurado para ambos os classificadores. Se userloginA executar uma consulta com um rótulo igual entre salesreport as 18h e as 7h UTC, o pedido é classificado para o wgDashboards grupo de carga de trabalho com HIGH importância. A expectativa pode ser classificar o pedido como wgUserQueries com importância para relatórios fora de horas, mas o peso de WLM_LABEL é superior aEND_TIMESTART_TIME/ .LOW A ponderação de classifierA é 80 (64 para o utilizador, mais 16 para WLM_LABEL). A ponderação de é ( para o utilizador, 4 para/START_TIMEEND_TIME ).6468classifierB Neste caso, pode adicionar WLM_LABEL a classifierB.

Para mais informações, consulte ponderação da carga de trabalho.

Permissions

Requer permissão CONTROL DATABASE.

Examples

O exemplo seguinte mostra como criar um classificador de carga de trabalho chamado wgcELTRole. Utiliza o staticrc20 grupo de carga de trabalho, o utilizador ELTRole, e define a IMPORTÂNCIA para ABOVE_NORMAL.

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