Share via


Azure Synapse Analytics-arbetsbelastningens betydelse

Den här artikeln förklarar hur arbetsbelastningens betydelse kan påverka körningsordningen för dedikerade SQL-poolbegäranden i Azure Synapse.

Betydelse

Affärsbehov kan kräva att datalagerarbetsbelastningar är viktigare än andra. Tänk dig ett scenario där verksamhetskritiska försäljningsdata läses in innan räkenskapsperioden avslutas. Datainläsningar för andra källor, till exempel väderdata, har inte strikta serviceavtal. Att ange hög prioritet för en begäran om att läsa in försäljningsdata och låg prioritet för en begäran om att läsa in väderdata säkerställer att försäljningsdatabelastningen får första åtkomsten till resurser och slutförs snabbare.

Prioritetsnivåer

Det finns fem nivåer av betydelse: låg, below_normal, normal, above_normal och hög. Begäranden som inte anger prioritet tilldelas standardnivån normal. Begäranden som har samma prioritetsnivå har samma schemaläggningsbeteende som finns idag.

Prioritetsscenarier

Utöver scenariot med grundläggande betydelse som beskrivs ovan med försäljnings- och väderdata finns det andra scenarier där arbetsbelastningens betydelse hjälper till att uppfylla databearbetnings- och frågebehov.

Låsning

Åtkomst till lås för läs- och skrivaktivitet är ett område med naturlig konkurrens. Aktiviteter som partitionsväxling eller BYT NAMN PÅ OBJEKT kräver förhöjda lås. Utan arbetsbelastningsvikt optimerar dedikerad SQL-pool i Azure Synapse dataflödet. Optimering för dataflöde innebär att när du kör och köar begäranden har samma låsningsbehov och resurser är tillgängliga, kan köade begäranden kringgå begäranden med högre låsningsbehov som kom till begärandekön tidigare. När arbetsbelastningens betydelse tillämpas på begäranden med högre låsningsbehov. Begäran med högre prioritet körs före begäran med lägre prioritet.

Se följande exempel:

  • Q1 körs aktivt och väljer data från SalesFact.
  • Q2 står i kö i väntan på att Q1 ska slutföras. Den skickades klockan 9 och försöker partitionera växla nya data till SalesFact.
  • Q3 skickas kl. 9:01 och vill välja data från SalesFact.

Om Q2 och Q3 har samma betydelse och Q1 fortfarande körs börjar Q3 köras. Q2 fortsätter att vänta på ett exklusivt lås på SalesFact. Om Q2 har högre prioritet än Q3 väntar Q3 tills Q2 är klart innan körningen kan påbörjas.

Icke-enhetliga begäranden

Ett annat scenario där prioritet kan hjälpa dig att uppfylla frågekraven är när begäranden med olika resursklasser skickas. Som tidigare nämnts optimerar dedikerad SQL-pool i Azure Synapse för dataflöde under samma betydelse. När begäranden med blandad storlek (till exempel smallrc eller mediumrc) placeras i kö, väljer den dedikerade SQL-poolen den tidigaste ankommande begäran som passar inom de tillgängliga resurserna. Om arbetsbelastningens betydelse tillämpas schemaläggs nästa begäran av högsta prioritet.

Tänk dig följande exempel på DW500c:

  • Q1, Q2, Q3 och Q4 kör smallrc-frågor.
  • Q5 skickas med resursklassen mediumrc kl. 09.00.
  • Q6 skickas med resursklassen smallrc kl. 09:01.

Eftersom Q5 är mediumrc krävs två samtidighetsfack. Q5 måste vänta tills två av de frågor som körs har slutförts. Men när en av de frågor som körs (Q1-Q4) slutförs schemaläggs Q6 omedelbart eftersom det finns resurser för att köra frågan. Om Q5 har högre prioritet än Q6 väntar Q6 tills Q5 körs innan det kan börja köras.

Nästa steg