Delen via


Gebruiksscenario's voor Query Store

VAN TOEPASSING OP: Azure Database for PostgreSQL - enkele server

Belangrijk

Azure Database for PostgreSQL - Enkele server bevindt zich op het buitengebruikstellingspad. We raden u ten zeerste aan om een upgrade uit te voeren naar Azure Database for PostgreSQL - Flexible Server. Zie Wat gebeurt er met Azure Database for PostgreSQL Enkele server voor meer informatie over migreren naar Azure Database for PostgreSQL - Flexible Server.

U kunt Query Store gebruiken in een groot aantal scenario's waarin het bijhouden en onderhouden van voorspelbare workloadprestaties essentieel is. Bekijk de volgende voorbeelden:

  • Meest dure query's identificeren en afstemmen
  • A/B-tests
  • Prestaties stabiel houden tijdens upgrades
  • Ad-hocworkloads identificeren en verbeteren

Dure query's identificeren en afstemmen

Langstlopende query's identificeren

Gebruik de weergave Query Performance Insight in Azure Portal om snel de langst lopende query's te identificeren. Deze query's verbruiken doorgaans een aanzienlijke hoeveelheid resources. Door uw langst lopende vragen te optimaliseren, kunt u de prestaties verbeteren door resources vrij te maken voor gebruik door andere query's die op uw systeem worden uitgevoerd.

Doelquery's met prestatie-delta's

Query Store segmenteert de prestatiegegevens in tijdvensters, zodat u de prestaties van een query in de loop van de tijd kunt bijhouden. Dit helpt u precies te bepalen welke query's bijdragen aan een toename van de totale tijd die wordt besteed. Als gevolg hiervan kunt u gerichte probleemoplossing van uw workload uitvoeren.

Dure query's afstemmen

Wanneer u een query identificeert met suboptimale prestaties, is de actie die u uitvoert afhankelijk van de aard van het probleem:

  • Gebruik prestatieaankopen om te bepalen of er voorgestelde indexen zijn. Zo ja, maak de index en gebruik vervolgens Query Store om de queryprestaties te evalueren nadat u de index hebt gemaakt.
  • Zorg ervoor dat de statistieken up-to-date zijn voor de onderliggende tabellen die door de query worden gebruikt.
  • Overweeg dure query's te herschrijven. Profiteer bijvoorbeeld van queryparameterisatie en verminder het gebruik van dynamische SQL. Implementeer optimale logica bij het lezen van gegevens, zoals het toepassen van gegevensfiltering aan de databasezijde, niet aan de toepassingszijde.

A/B-tests

Gebruik Query Store om de prestaties van workloads te vergelijken voor en na een wijziging in een toepassing die u wilt introduceren. Voorbeelden van scenario's voor het gebruik van Query Store om de impact van de omgeving of toepassingswijziging in workloadprestaties te beoordelen:

  • Een nieuwe versie van een toepassing implementeren.
  • Extra resources toevoegen aan de server.
  • Ontbrekende indexen maken voor tabellen waarnaar wordt verwezen door dure query's.

Pas in een van deze scenario's de volgende werkstroom toe:

  1. Voer uw workload uit met Query Store voordat de geplande wijziging een prestatiebasislijn genereert.
  2. Toepassingswijziging(en) toepassen op het gecontroleerde moment in de tijd.
  3. Ga door met het uitvoeren van de workload lang genoeg om na de wijziging prestatie-installatiekopieën van het systeem te genereren.
  4. Vergelijk de resultaten van vóór en na de wijziging.
  5. Bepaal of u de wijziging of terugdraaiactie wilt behouden.

Ad-hocworkloads identificeren en verbeteren

Sommige workloads hebben geen dominante query's die u kunt afstemmen om de algehele prestaties van toepassingen te verbeteren. Deze workloads worden doorgaans gekenmerkt door een relatief groot aantal unieke query's, die elk een deel van systeembronnen verbruiken. Elke unieke query wordt onregelmatig uitgevoerd, dus individueel is hun runtimeverbruik niet kritiek. Daarentegen, gezien het feit dat de toepassing steeds nieuwe query's genereert, wordt een aanzienlijk deel van de systeembronnen besteed aan het compileren van query's, wat niet optimaal is. Deze situatie treedt meestal op als uw toepassing query's genereert (in plaats van opgeslagen procedures of geparameteriseerde query's te gebruiken) of als deze afhankelijk is van frameworks voor object-relationele toewijzing die standaard query's genereren.

Als u de toepassingscode beheert, kunt u overwegen de gegevenstoegangslaag te herschrijven voor het gebruik van opgeslagen procedures of geparameteriseerde query's. Deze situatie kan echter ook worden verbeterd zonder toepassingswijzigingen door queryparameterisatie af te dwingen voor de hele database (alle query's) of voor de afzonderlijke querysjablonen met dezelfde query-hash.

Volgende stappen