Dela via


Vikten av arbetsbelastning för Azure Synapse Analytics

Den här artikeln beskriver 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 stängs. Datainhämtningsprocesser för andra källor, till exempel väderdata, har inte strikta krav på tjänstekontrakten. 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 åtkomst till resurser och slutförs snabbare.

Prioritetsnivåer

Det finns fem nivåer av betydelse: låg, under_normal, normal, över_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.

Viktighetscenarier

Utöver det scenario 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 databehandlings- 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 betydelse av arbetsbelastning optimeras dedikerade SQL-pooler i Azure Synapse för dataflöde. Optimering för genomströmning innebär att när de körande och de köade begärandena har samma låsningsbehov och resurser är tillgängliga, kan de köade begärandena kringgå begäranden med högre låsningsbehov som kom till begärandekön tidigare. När betydelsen av arbetsbelastningen tillämpas på förfrågningar som har större låsbehov. Begäran med högre prioritet körs före begäran med lägre prioritet.

Tänk på 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 in klockan 09.00 och försöker dela upp och överföra ny data till SalesFact.
  • Q3 skickas kl. 09: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 betydelse kan hjälpa dig att uppfylla frågekraven är när begäranden med olika resursklasser skickas. Som tidigare nämnts optimerar dedikerade SQL-pooler i Azure Synapse för dataflöde under samma prioritet. 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 vikt tillämpas, schemaläggs den begäran med störst betydelse nästa gång.

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å samtidighetsplatser. Q5 måste vänta tills två av de pågående frågorna har slutförts. Men när en av de frågor som körs (Q1-Q4) slutförs, schemaläggs Q6 omedelbart eftersom resurserna finns 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