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_TIMESTART_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 ELTRoley establece la importancia en ABOVE_NORMAL.

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