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 smallrc
classe de 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 o uso de rótulo, sessão ou classificação baseada em 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 dentro da 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.
MEMBERNAME = 'security_account'
A conta de segurança usada para classificar contra. 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 função, quando conectado ao sistema, para verificar se o processo de MEMBERNAME
classificação será usado para classificar a user_name()
solicitação. Verificar o com a user_name()
função pode ser útil para solucionar problemas de ID do Microsoft Entra ou de classificação da entidade de MEMBERNAME
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 mapeamento de várias contas do Microsoft Entra 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 que 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 em conjunto.
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 entre salesreport
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 o pedido com wgUserQueries
importância para relatórios fora do expediente, mas a ponderação de WLM_LABEL
é maior queEND_TIME
START_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 da 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 grupo de carga de trabalho, o staticrc20
usuário ELTRole
e define a IMPORTÂNCIA como ABOVE_NORMAL
.
CREATE WORKLOAD CLASSIFIER wgcELTRole
WITH (
WORKLOAD_GROUP = 'staticrc20',
MEMBERNAME = 'ELTRole',
IMPORTANCE = ABOVE_NORMAL
);
Conteúdo relacionado
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários