SKAPA ARBETSBELASTNINGSKLASSIFICERARE (Transact-SQL)

gäller för:Azure Synapse Analytics

Skapar ett klassificerarobjekt för användning vid arbetsbelastningshantering. Klassificeraren tilldelar inkommande förfrågningar till en arbetsbelastningsgrupp baserat på parametrarna som anges i klassificeringsformuleringen. Klassificerare utvärderas med varje inskickad förfrågan. Om en förfrågan inte matchas med en klassificerare tilldelas den standardarbetsbelastningsgruppen. Standardarbetsbelastningsgruppen är smallrc resursklassen.

Note

Klassificering av hanterade identiteter (MI)-beteende skiljer sig mellan den dedikerade SQL-poolen i Azure Synapse-arbetsytor och den fristående dedikerade SQL-poolen (tidigare SQL DW). Medan den fristående dedikerade SQL-pool-MI:n behåller den tilldelade identiteten, lägger Azure Synapse workspaces till MI till dbo-rollen. Detta kan inte ändras. DBO-rollen klassificeras som standard till smallrc. Att skapa en klassificerare för dbo-rollen möjliggör tilldelning av förfrågningar till en arbetsbelastningsgrupp annan än smallrc. Om dbo ensamt är för generiskt för klassificering och har bredare effekter, överväg att använda klassificering av etikett, session eller tid tillsammans med dbo-klassificeringen .

Transact-SQL syntaxkonventioner

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

Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.

Arguments

classifier_name

Specificerar namnet på vilket arbetsbelastningsklassificeraren identifieras. classifier_name är sysname. Denna parameter kan vara upp till 128 tecken lång och måste vara unik inom instansen.

WORKLOAD_GROUP = 'namn'

När villkoren uppfylls av klassificeringsreglerna, mappar namnet förfrågan till en arbetsbelastningsgrupp. Namnet är Sysname. Denna parameter kan vara upp till 128 tecken lång och måste vara ett giltigt arbetsbelastningsgruppnamn vid skapandet av klassificeraren.

Tillgängliga arbetsbelastningsgrupper finns i sys.workload_management_workload_groups katalogvy.

MEDLEMNAMN = 'security_account'

Säkerhetskontot som användes för att klassificera mot. security_account är sysname, utan standard. security_account kan vara en databasanvändare, databasroll, Microsoft Entra inloggning eller Microsoft Entra grupp.

Note

Använd user_name() funktionen, när den är ansluten till systemet, för att verifiera den MEMBERNAME klassificeringsprocess kommer att använda för att klassificera förfrågan. Att verifiera med MEMBERNAME funktionen user_name() kan vara hjälpsamt för att felsöka Microsoft Entra ID eller klassificeringsproblem för tjänsteprinciper. Om user_name() det återvänder dbokan du använda DBO som för MEMBERNAME att klassificera förfrågningarna. Alla medlemmar i DBO-rollen kommer att klassificeras. Ytterligare klassificeringsparametrar såsom WLM_LABEL kan WLM_CONTEXT också användas för att specifikt klassificera förfrågningar från flera Microsoft Entra-konton som mappar till dbo-rollen.

WLM_ETIKETT

Specificerar etikettvärdet som en förfrågan kan klassificeras mot. Etikett är en valfri parameter av typen nvarchar(255). Använd OPTION (LABEL) i förfrågan för att matcha klassificeringskonfigurationen.

Ett exempel:

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

WLM_CONTEXT

Specificerar sessionskontextvärdet som en begäran kan klassificeras mot. WLM_CONTEXTär en valfri parameter av typen nvarchar(255). Använd sys.sp_set_session_context med variabelnamnet lika med wlm_context innan du skickar in en förfrågan för att sätta sessionskontexten.

Ett exempel:

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 och END_TIME

Specificerar start- och sluttid som en begäran kan klassificeras mot. Båda START_TIME och END_TIME är i formatet HH:mm i UTC-tidszonen. START_TIME och END_TIME måste specificeras tillsammans.

Ett exempel:

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 | HÖG }

Specificerar den relativa betydelsen av en begäran. IMPORTANCE är ett av följande alternativ:

  • LOW
  • BELOW_NORMAL
  • NORMAL (standardinställning)
  • ABOVE_NORMAL
  • HIGH

Om det IMPORTANCE inte anges används viktinställningen för arbetsbelastningsgruppen. Standardviktens viktgruppsvikt är NORMAL. Betydelse påverkar i vilken ordning förfrågningar schemaliser, vilket ger första åtkomst till resurser och lås.

Anmärkningar

Det maximala antalet användardefinierade klassificerare är 100. Ytterligare konfigurationer utöver den här gränsen stöds inte. Vi rekommenderar att gruppera klassificerare under en gemensam kategori för effektiv tillämpning av en enda inställning över flera arbetsbelastningar eller användare.

Viktning av klassificeringsparametrar

En begäran kan matchas mot flera klassificerare. Det finns en viktning för klassificerarparametrarna. Den högre viktade matchningsklassificeraren används för att tilldela en arbetsbelastningsgrupp och betydelse. Viktningen går så här:

Klassificerarparameter Weight
USER 64
ROLE 32
WLM_LABEL 16
WLM_CONTEXT 8
START_TIME/END_TIME 4

Betrakta följande klassificerarkonfigurationer.

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'
);

Användaren userloginA är konfigurerad för båda klassificerarna. Om userloginA en fråga körs med en etikett lika med salesreport mellan kl. 18.00 och 07.00 UTC, klassificeras förfrågan till wgDashboards arbetsbelastningsgruppen med HIGH betydelse. Förväntan kan vara att klassificera begäran till wgUserQueries med betydelse för rapportering utanför ordinarie arbetstid, men viktningen av WLM_LABEL är högre änEND_TIMESTART_TIME/ .LOW Viktningen av classifierA är 80 (64 för användaren, plus 16 för WLM_LABEL). Viktningen av är ( för användaren, 4 för/START_TIMEEND_TIME ).6468classifierB I detta fall kan du lägga till WLM_LABEL .classifierB

För mer information, se arbetsbelastningsviktning.

Permissions

Kräver CONTROL DATABASE behörighet.

Examples

Följande exempel visar hur man skapar en arbetsbelastningsklassificerare med namnet wgcELTRole. Den använder staticrc20 arbetsbelastningsgruppen, användaren ELTRole, och sätter IMPORTANCE till ABOVE_NORMAL.

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