CREATE WORKLOAD CLASSIFIER (Transact-SQL)
Se aplica a: Azure Synapse Analytics
Crea un objeto clasificador para su uso en la administración de cargas de trabajo. El clasificador asigna las solicitudes entrantes a un grupo de cargas de trabajo según los parámetros especificados en la definición de la instrucción del clasificador. Los clasificadores se evalúan con cada solicitud enviada. Si una solicitud no coincide con un clasificador, se asigna al grupo de cargas de trabajo predeterminado. El grupo de cargas de trabajo predeterminado es la smallrc
clase de recursos.
Nota:
La clasificación del comportamiento de las identidades administradas (MI) difiere entre el grupo de SQL dedicado en áreas de trabajo de Azure Synapse y el grupo de SQL dedicado independiente (anteriormente SQL DW). Aunque la instancia de MI del grupo de SQL dedicado independiente mantiene la identidad asignada, las áreas de trabajo de Azure Synapse agregan MI al rol dbo. Esto no se puede cambiar. El rol dbo , de forma predeterminada, se clasifica en smallrc
. La creación de un clasificador para el rol dbo permite asignar solicitudes a un grupo de cargas de trabajo distinto de smallrc
. Si dbo solo es demasiado genérico para la clasificación y tiene impactos más amplios, considere la posibilidad de usar la clasificación basada en etiquetas, sesiones o tiempo junto con la clasificación de roles dbo .
Convenciones de sintaxis de Transact-SQL
Sintaxis
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 } ] )
[ ; ]
Nota:
El grupo de SQL sin servidor no admite esta sintaxis en Azure Synapse Analytics.
Argumentos
classifier_name
Especifica el nombre por el que se identifica el clasificador de carga de trabajo. classifier_name es sysname. Este parámetro puede tener hasta 128 caracteres y debe ser único dentro de la instancia.
WORKLOAD_GROUP = 'name'
Si se cumplen las condiciones en las reglas de clasificador, "name" asigna la solicitud a un grupo de cargas de trabajo. name es sysname. Este parámetro puede tener hasta 128 caracteres y debe ser un nombre de grupo de cargas de trabajo válido en el momento de la creación del clasificador.
Los grupos de cargas de trabajo disponibles se pueden encontrar en la vista de catálogo sys.workload_management_workload_groups.
MEMBERNAME = 'security_account'
La cuenta de seguridad usada para clasificar. security_account es sysname, sin ningún valor predeterminado. security_account puede ser un usuario de base de datos, un rol de base de datos, un inicio de sesión de Microsoft Entra o un grupo de Microsoft Entra.
Nota:
Use la user_name()
función , cuando esté conectada al sistema, para comprobar MEMBERNAME
que el proceso de clasificación usará para clasificar la solicitud. Comprobar con MEMBERNAME
la user_name()
función puede resultar útil solucionar problemas de clasificación de Identificador de Microsoft Entra o entidad de servicio. Si user_name()
devuelve dbo
, puede usar dbo como MEMBERNAME
para clasificar las solicitudes. Todos los miembros del rol dbo se clasificarán. También se pueden usar parámetros de clasificación adicionales como WLM_LABEL
o WLM_CONTEXT
para clasificar específicamente las solicitudes de varias cuentas de Microsoft Entra que se asignan al rol dbo .
WLM_LABEL
Especifica el valor de etiqueta con el que se puede clasificar una solicitud. Label es un parámetro opcional de tipo nvarchar(255). Use OPTION (LABEL) en la solicitud para que coincida con la configuración del clasificador.
Por ejemplo:
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 el valor de contexto de sesión con el que se puede clasificar una solicitud. WLM_CONTEXT
es un parámetro opcional de tipo nvarchar(255). Use el sys.sp_set_session_context con el nombre de la variable igual a wlm_context
antes de enviar una solicitud para establecer el contexto de sesión.
Por ejemplo:
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 y END_TIME
Especifica la hora de inicio y la hora de finalización con las que se puede clasificar una solicitud. Tanto START_TIME
como END_TIME
son del HH:mm
formato en la zona horaria UTC. START_TIME
y END_TIME
deben especificarse juntos.
Por ejemplo:
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 la importancia relativa de una solicitud. IMPORTANCE
es una de las siguientes opciones:
LOW
BELOW_NORMAL
NORMAL
(valor predeterminado)ABOVE_NORMAL
HIGH
Si IMPORTANCE
no se especifica, se usa la configuración de importancia del grupo de cargas de trabajo. La importancia predeterminada del grupo de cargas de trabajo es NORMAL
. La importancia influye en el orden en el que se programan las solicitudes, lo que da el primer acceso a los recursos y bloqueos.
Comentarios
El número máximo de clasificadores definidos por el usuario es 100
. No se admiten configuraciones adicionales más allá de este límite. Se recomienda agrupar clasificadores en una categoría común para una aplicación eficaz de una sola configuración, en varias cargas de trabajo o usuarios.
Ponderación de los parámetros de clasificación
Una solicitud puede coincidir con varios clasificadores. Hay una ponderación para los parámetros clasificadores. El clasificador de mayor peso coincidente se usa para asignar un grupo de cargas de trabajo y una importancia. La ponderación es como se indica a continuación:
Parámetro clasificador | Peso |
---|---|
USER |
64 |
ROLE |
32 |
WLM_LABEL |
16 |
WLM_CONTEXT |
8 |
START_TIME /END_TIME |
4 |
Tenga en cuenta las siguientes configuraciones de clasificador.
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'
);
El userloginA
del usuario está configurado para ambos clasificadores. Si userloginA
ejecuta una consulta con una etiqueta igual a salesreport
entre las 6:00 y las 7:00 UTC, la solicitud se clasifica al wgDashboards
grupo de cargas de trabajo con HIGH
importancia. La expectativa podría ser clasificar la solicitud a wgUserQueries
con importancia para los informes fuera del horario laboral, pero la ponderación de WLM_LABEL
es mayor queEND_TIME
START_TIME
/ .LOW
La ponderación de classifierA
es 80
(64
para el usuario, más 16
para WLM_LABEL
). La ponderación de classifierB
es 68
(64
para el usuario, 4
para START_TIME
/END_TIME
). En este caso, puede agregar WLM_LABEL
a classifierB
.
Para más información, consulte Ponderación de cargas de trabajo.
Permisos
Requiere el permiso CONTROL DATABASE
.
Ejemplos
En el ejemplo siguiente se muestra cómo crear un clasificador de cargas de trabajo denominado wgcELTRole
. Usa el staticrc20
grupo de cargas de trabajo, el usuario ELTRole
y establece la importancia en ABOVE_NORMAL
.
CREATE WORKLOAD CLASSIFIER wgcELTRole
WITH (
WORKLOAD_GROUP = 'staticrc20',
MEMBERNAME = 'ELTRole',
IMPORTANCE = ABOVE_NORMAL
);