Dela via


Användningsscenarier för frågearkiv – Azure Database for PostgreSQL – flexibel server

GÄLLER FÖR: Azure Database for PostgreSQL – flexibel server

Du kan använda frågearkivet i en mängd olika scenarier där det är viktigt att spåra och underhålla förutsägbara arbetsbelastningsprestanda. Föreställ dig följande exempel:

  • Identifiera och finjustera dyra frågor.
  • Utför A/B-test.
  • Identifiera och förbättra improviserade arbetsbelastningar.

Identifiera och finjustera dyra frågor

Identifiera tidskrävande frågor

Använd frågearkivvyer på azure_sys serverns databas för att snabbt identifiera de frågor som körs längst. De här frågorna brukar förbruka mest resurser. Om du optimerar dina frågor som körs längst kan du förbättra prestandan genom att frigöra resurser som används av andra frågor som körs i systemet.

Målfrågor med prestandadelta

Query Store delar upp prestandadata i tidsfönster, så att du kan spåra prestanda för en fråga över tid. Detta hjälper dig att identifiera exakt vilka frågor som bidrar till en ökning av den totala tid som spenderas. Därför kan du utföra begränsad felsökning av din arbetsbelastning.

Justera dyra frågor

När du identifierar en fråga med suboptimal prestanda beror den åtgärd du vidtar på problemets art. Några av dessa åtgärder kan vara:

  • Kontrollera att statistiken är uppdaterad för de underliggande tabeller som används av frågan.
  • Överväg att skriva om dyra frågor. Du kan till exempel dra nytta av frågeparameterisering och minska användningen av ad hoc SQL. Implementera optimal logik när du läser data, som att tillämpa datafiltrering på databassidan, i stället för att göra det på programsidan.

Utföra A/B-testning

Använd query store för att jämföra arbetsbelastningens prestanda före och efter en programändring som du planerar att införa, eller före och efter migreringen. Exempelscenarier för att använda frågearkiv för att utvärdera effekten av ändringar i arbetsbelastningens prestanda:

  • Migrera mellan större versioner av PostgreSQL.
  • Distribuera en ny version av ett program.
  • Ändra mängden resurser som beviljats till servern.
  • Ändra någon av de serverparametrar som påverkar serverns beteende.
  • Skapa saknade index i tabeller som refereras av dyra frågor.
  • Migrera från Azure Database for PostgreSQL – enskild server till flexibel Azure Database for PostgreSQL-server.

I något av dessa scenarier tillämpar du följande arbetsflöde:

  1. Kör arbetsbelastningen med frågearkivet före den planerade ändringen för att generera en prestandabaslinje.
  2. Tillämpa önskade ändringar vid en kontrollerad tidpunkt.
  3. Fortsätt att köra arbetsbelastningen under tillräckligt lång tid, så att du kan få en tydlig vy över systemets prestanda efter ändringen.
  4. Jämför resultaten från före och efter ändringen.
  5. Bestäm om ändringen ska behållas eller återställas.

Identifiera och förbättra improviserade arbetsbelastningar

Vissa arbetsbelastningar har inte dominerande frågor som du kan justera för att förbättra programmets övergripande prestanda. Dessa arbetsbelastningar kännetecknas vanligtvis av ett relativt stort antal unika frågor, där var och en förbrukar en del av systemresurserna. Varje unik fråga körs sällan, så individuellt är deras körningsförbrukning inte kritisk. Å andra sidan, med tanke på att programmet genererar nya frågor hela tiden, spenderas en betydande del av systemresurserna på frågekompilering, vilket inte är optimalt. Vanligtvis inträffar den här situationen om ditt program genererar frågor (i stället för att använda lagrade procedurer eller parametriserade frågor) eller om det förlitar sig på objektrelationsmappningsramverk som genererar frågor som standard.

Om du har kontroll över programkoden kan du överväga att skriva om dataåtkomstlagret för att använda lagrade procedurer eller parametriserade frågor. Den här situationen kan dock också förbättras utan programändringar genom att tvinga fram frågeparameterisering för hela databasen (alla frågor) eller för de enskilda frågemallarna med samma frågehash.