Query Performance Insight voor Azure SQL Database

Van toepassing op: Azure SQL database

Query Performance Insight biedt intelligente queryanalyses voor enkelvoudige en pooldatabases. Dit helpt bij het identificeren van de belangrijkste en langlopende query's in uw workload. Zo kunt u de query's vinden die u wilt optimaliseren om de algehele prestaties van de workload te verbeteren en de resource waarvoor u betaalt efficiënt te gebruiken. Met Query Performance Insight ben je minder tijd aan het oplossen van problemen met databaseprestaties doordat dit hulpprogramma het volgende biedt:

  • Meer inzicht in het verbruik van uw databaseresource (DTU)
  • Details van de belangrijkste databasequery's per CPU, duur en aantal uitvoeringen (mogelijke kandidaten voor het afstemmen van prestatieverbeteringen)
  • De mogelijkheid om in te zoomen op details van een query om de querytekst en de geschiedenis van het resourcegebruik weer te geven
  • Aantekeningen die prestatieaanbevelingen van databaseadviseurs weergeven

Inzicht in queryprestaties

Vereisten

Query Performance Insight vereist dat Query Store actief is in uw database. Deze functie wordt standaard automatisch ingeschakeld voor alle databases in Azure SQL Database. Als Query Store niet wordt uitgevoerd, word je door Azure Portal gevraagd dit in te stellen.

Notitie

Als het bericht 'Query Store is niet goed geconfigureerd voor deze database' wordt weergegeven in de portal, raadpleeg je De Query Store-configuratie optimaliseren).

Machtigingen

U hebt de volgende azure-machtigingen voor op rollen gebaseerd toegangsbeheer (Azure RBAC) nodig om Query Performance Insight te gebruiken:

  • De machtigingen Lezer, Eigenaar, Inzender, SQL DB-inzender of SQL Server Inzender zijn vereist om de meest resourceverbruikende query's en grafieken weer te geven.
  • De machtigingen Eigenaar, Inzender, SQL DB-inzender of SQL Server inzender zijn vereist om querytekst weer te geven.

Query Performance Insight gebruiken

Query Performance Insight is eenvoudig te gebruiken:

  1. Open de Azure Portal en zoek een database die u wilt onderzoeken.

  2. Open Intelligent Performance>Query Performance Insight in het menu aan de linkerkant.

    Query Performance Insight in het menu

  3. Bekijk op het eerste tabblad de lijst met query's die het meeste resources verbruiken.

  4. Selecteer een afzonderlijke query om de details ervan weer te geven.

  5. Open Aanbevelingen voor intelligente prestaties>en controleer of er prestatieaanbevelingsaanbeveling beschikbaar is. Zie Azure SQL Database Advisor voor meer informatie over aanbevelingen voor ingebouwde prestaties.

  6. Gebruik schuifregelaars of zoompictogrammen om het waargenomen interval te wijzigen.

    Prestatiedashboard

Notitie

Voor Azure SQL Database om de informatie in Query Performance Insight weer te geven, moet Query Store een paar uur aan gegevens vastleggen. Als de database geen activiteit heeft of als Query Store gedurende een bepaalde periode niet actief was, zijn de grafieken leeg wanneer Query Performance Insight dat tijdsbereik weergeeft. U kunt Query Store op elk gewenst moment inschakelen als deze niet wordt uitgevoerd. Zie Best practices met Query Store voor meer informatie.

Voor aanbevelingen voor databaseprestaties selecteert u Aanbevelingen op de navigatieblade Query Performance Insight.

Het tabblad Aanbevelingen

Query's die de meeste CPU's verbruiken bekijken

Query Performance Insight toont standaard de vijf meest CPU-verbruikende query's wanneer u deze voor het eerst opent.

  1. Schakel afzonderlijke query's in of uit om ze in de grafiek op te nemen of uit te sluiten met behulp van selectievakjes.

    De bovenste regel toont het totale DTU-percentage voor de database. De balken geven het CPU-percentage weer dat de geselecteerde query's hebben verbruikt tijdens het geselecteerde interval. Als bijvoorbeeld Afgelopen week is geselecteerd, vertegenwoordigt elke balk één dag.

    Belangrijkste query's

    Belangrijk

    De weergegeven DTU-regel wordt geaggregeerd tot een maximale verbruikswaarde in perioden van één uur. Het is alleen bedoeld voor een vergelijking op hoog niveau met statistieken over het uitvoeren van query's. In sommige gevallen lijkt het DTU-gebruik te hoog in vergelijking met uitgevoerde query's, maar dit is mogelijk niet het geval.

    Als een query bijvoorbeeld slechts een paar minuten maximaal DTU heeft bereikt tot 100%, geeft de DTU-regel in Query Performance Insight het hele verbruiksuur weer als 100% (het gevolg van de maximale geaggregeerde waarde).

    Voor een nauwkeurigere vergelijking (maximaal één minuut) kunt u een aangepaste grafiek met DTU-gebruik maken:

    1. Selecteer in de Azure Portal databasebewaking Azure SQL>.
    2. Selecteer Metrische gegevens.
    3. Selecteer +Grafiek toevoegen.
    4. Selecteer het DTU-percentage in de grafiek.
    5. Selecteer bovendien Afgelopen 24 uur in het menu linksboven en wijzig dit in één minuut.

    Gebruik de aangepaste DTU-grafiek met een fijner niveau van details om te vergelijken met de grafiek voor queryuitvoering.

    In het onderste raster ziet u geaggregeerde informatie voor de zichtbare query's:

    • Query-id, een unieke id voor de query in de database.
    • CPU per query tijdens een waarneembaar interval, dat afhankelijk is van de aggregatiefunctie.
    • Duur per query, die ook afhankelijk is van de aggregatiefunctie.
    • Het totale aantal uitvoeringen voor een specifieke query.
  2. Als uw gegevens verlopen, selecteert u de knop Vernieuwen .

  3. Gebruik schuifregelaars en zoomknoppen om het observatieinterval te wijzigen en verbruikspieken te onderzoeken:

    Schuifregelaars en zoomknoppen voor het wijzigen van het interval

  4. U kunt desgewenst het tabblad Aangepast selecteren om de weergave aan te passen voor:

    • Metrische gegevens (CPU, duur, aantal uitvoeringen).
    • Tijdsinterval (afgelopen 24 uur, afgelopen week of afgelopen maand).
    • Aantal query's.
    • Aggregatiefunctie.

    Aangepast tabblad

  5. Selecteer de knop Ga > om de aangepaste weergave weer te geven.

    Belangrijk

    Query Performance Insight is beperkt tot het weergeven van de 5-20 meest verbruikte query's, afhankelijk van uw selectie. Uw database kan veel meer query's uitvoeren dan de bovenste query's die worden weergegeven, en deze query's worden niet opgenomen in de grafiek.

    Er kan een type databaseworkload bestaan waarin veel kleinere query's, naast de bovenste query's, vaak worden uitgevoerd en het merendeel van de DTU gebruiken. Deze query's worden niet weergegeven in het prestatiediagram.

    Een query kan bijvoorbeeld gedurende een tijdje een aanzienlijke hoeveelheid DTU hebben verbruikt, hoewel het totale verbruik in de waargenomen periode lager is dan de andere query's met het hoogste verbruik. In een dergelijk geval wordt het resourcegebruik van deze query niet weergegeven in de grafiek.

    Als u meer wilt weten over de belangrijkste queryuitvoeringen die verder gaan dan de beperkingen van Query Performance Insight, kunt u overwegen om Azure SQL Insights te gebruiken voor geavanceerde bewaking en probleemoplossing van databaseprestaties.

Details van afzonderlijke query's weergeven

Querydetails weergeven:

  1. Selecteer een query in de lijst met belangrijkste query's.

    Lijst met belangrijkste query's

    Er wordt een gedetailleerde weergave geopend. Het toont het CPU-verbruik, de duur en het aantal uitvoeringen in de loop van de tijd.

  2. Selecteer de grafiekfuncties voor meer informatie.

    • In de bovenste grafiek ziet u een lijn met het totale DTU-percentage van de database. De balken zijn het CPU-percentage dat de geselecteerde query heeft verbruikt.
    • De tweede grafiek toont de totale duur van de geselecteerde query.
    • De onderste grafiek toont het totale aantal uitvoeringen door de geselecteerde query.

    Querydetails

  3. U kunt desgewenst schuifregelaars gebruiken, zoomknoppen gebruiken of Instellingen selecteren om aan te passen hoe querygegevens worden weergegeven of om een ander tijdsbereik te kiezen.

    Belangrijk

    Query Performance Insight legt geen DDL-query's vast. In sommige gevallen worden mogelijk niet alle ad-hocquery's vastgelegd.

    Als het bereik van uw database is vergrendeld met een alleen-lezenvergrendeling, kan de blade querygegevens niet worden geladen.

Belangrijkste query's per duur controleren

Twee metrische gegevens in Query Performance Insight kunnen u helpen potentiële knelpunten te vinden: duur en aantal uitvoeringen.

Langlopende query's hebben het grootste potentieel om resources langer te vergrendelen, andere gebruikers te blokkeren en de schaalbaarheid te beperken. Ze zijn ook de beste kandidaten voor optimalisatie. Zie Problemen met Azure SQL blokkeren begrijpen en oplossen voor meer informatie.

Langlopende query's identificeren:

  1. Open het tabblad Aangepast in Query Performance Insight voor de geselecteerde database.

  2. Wijzig de metrische gegevens in duur.

  3. Selecteer het aantal query's en het waarnemingsinterval.

  4. Selecteer de aggregatiefunctie:

    • Som telt alle uitvoeringstijd van query's voor het hele observatie-interval op.
    • Met Max worden query's gevonden waarin de uitvoeringstijd voor het hele observatie-interval maximaal was.
    • Avg zoekt de gemiddelde uitvoeringstijd van alle queryuitvoeringen en toont u de belangrijkste voor deze gemiddelden.

    Queryduur

  5. Selecteer de knop Ga > om de aangepaste weergave weer te geven.

    Belangrijk

    Als u de queryweergave aanpast, wordt de DTU-regel niet bijgewerkt. De DTU-regel geeft altijd de maximale verbruikswaarde voor het interval weer.

    Als u het DTU-verbruik van de database met meer details wilt begrijpen (maximaal één minuut), kunt u een aangepaste grafiek maken in de Azure Portal:

    1. Selecteer Azure SQL Databasebewaking>.
    2. Selecteer Metrische gegevens.
    3. Selecteer +Grafiek toevoegen.
    4. Selecteer het DTU-percentage in de grafiek.
    5. Selecteer bovendien Afgelopen 24 uur in het menu linksboven en wijzig dit in één minuut.

    U wordt aangeraden de aangepaste DTU-grafiek te gebruiken om deze te vergelijken met de queryprestatiegrafiek.

Belangrijkste query's per aantal uitvoeringen bekijken

Een gebruikerstoepassing die gebruikmaakt van de database kan traag worden, hoewel een groot aantal uitvoeringen mogelijk geen invloed heeft op de database zelf en het gebruik van resources laag is.

In sommige gevallen kan een hoog aantal uitvoeringen leiden tot meer netwerkrondritten. Retouren zijn van invloed op de prestaties. Ze zijn onderhevig aan netwerklatentie en downstreamserverlatentie.

Veel gegevensgestuurde websites hebben bijvoorbeeld veel toegang tot de database voor elke gebruikersaanvraag. Hoewel het groeperen van verbindingen helpt, kunnen de prestaties worden vertraagd door het toegenomen netwerkverkeer en de verwerkingsbelasting op de server. Over het algemeen moet u retouren tot een minimum beperken.

Veelgebruikte (spraakmakende) query's identificeren:

  1. Open het tabblad Aangepast in Query Performance Insight voor de geselecteerde database.

  2. Wijzig de metrische gegevens in het aantal uitvoeringen.

  3. Selecteer het aantal query's en het waarnemingsinterval.

  4. Selecteer de knop Ga > om de aangepaste weergave weer te geven.

    Aantal queryuitvoeringen

Inzicht in aantekeningen bij het afstemmen van prestaties

Tijdens het verkennen van uw workload in Query Performance Insight ziet u mogelijk pictogrammen met een verticale lijn boven aan de grafiek.

Deze pictogrammen zijn aantekeningen. Ze tonen prestatieaanbeveling van Azure SQL Database Advisor. Als u de muisaanwijzer op een aantekening plaatst, krijgt u een overzicht van de prestatieaanbeveling.

Queryaantekening

Als u meer wilt weten of de aanbeveling van de adviseur wilt toepassen, selecteert u het pictogram om details van de aanbevolen actie te openen. Als dit een actieve aanbeveling is, kunt u deze direct vanuit de portal toepassen.

Details van queryaantekening

In sommige gevallen is het vanwege het zoomniveau mogelijk dat aantekeningen dicht bij elkaar worden samengevouwen tot één aantekening. Query Performance Insight geeft dit aan als een groepsaantekeningspictogram. Als u het pictogram groepsaantekening selecteert, wordt een nieuwe blade geopend met de aantekeningen.

Het correleren van query's en acties voor het afstemmen van prestaties kan u helpen uw workload beter te begrijpen.

Query Store-configuratie optimaliseren

Wanneer u Query Performance Insight gebruikt, ziet u mogelijk de volgende Query Store-foutberichten:

  • 'Query Store is niet juist geconfigureerd voor deze database. Klik hier voor meer informatie.
  • 'Query Store is niet juist geconfigureerd voor deze database. Klik hier om de instellingen te wijzigen.'

Deze berichten worden meestal weergegeven wanneer Query Store geen nieuwe gegevens kan verzamelen.

Het eerste geval doet zich voor wanneer Query Store de status Alleen-lezen heeft en parameters optimaal zijn ingesteld. U kunt dit oplossen door de grootte van het gegevensarchief te vergroten of door Query Store te wissen. (Als u Query Store wist, gaan alle eerder verzamelde telemetrie verloren.)

Details van Query Store

Het tweede geval treedt op wanneer Query Store niet is ingeschakeld of parameters niet optimaal zijn ingesteld. U kunt het bewaar- en opnamebeleid wijzigen en Query Store inschakelen door de volgende opdrachten uit te voeren die worden geleverd vanuit SQL Server Management Studio (SSMS) of de Azure Portal.

Er zijn twee soorten bewaarbeleidsregels:

  • Op basis van grootte: als dit beleid is ingesteld op AUTO, worden gegevens automatisch opgeschoond wanneer de maximale grootte bijna is bereikt.
  • Op basis van tijd: dit beleid is standaard ingesteld op 30 dagen. Als Query Store geen ruimte meer heeft, worden querygegevens die ouder zijn dan 30 dagen verwijderd.

U kunt het opnamebeleid instellen op:

  • Alle: In Query Store worden alle query's vastgelegd.
  • Auto: Query Store negeert onregelmatige query's en query's met een onbelangrijke compileer- en uitvoeringsduur. Drempelwaarden voor het aantal uitvoeringen, de duur van compileren en de duur van de runtime worden intern bepaald. Dit is de standaardoptie.
  • Geen: Query Store stopt met het vastleggen van nieuwe query's, maar runtimestatistieken voor al vastgelegde query's worden nog steeds verzameld.

U wordt aangeraden alle beleidsregels in te stellen op AUTO en het opschoningsbeleid op 30 dagen door de volgende opdrachten uit te voeren vanuit SSMS of de Azure Portal. (Vervang door YourDB de databasenaam.)

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (SIZE_BASED_CLEANUP_MODE = AUTO);

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 30));

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (QUERY_CAPTURE_MODE = AUTO);

Vergroot de grootte van Query Store door verbinding te maken met een database via SSMS of de Azure Portal en de volgende query uit te voeren. (Vervang door YourDB de databasenaam.)

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (MAX_STORAGE_SIZE_MB = 1024);

Door deze instellingen toe te passen, verzamelt Query Store uiteindelijk telemetriegegevens voor nieuwe query's. Als u Query Store direct wilt laten werken, kunt u query store desgewenst wissen door de volgende query uit te voeren via SSMS of de Azure Portal. (Vervang door YourDB de databasenaam.)

Notitie

Als u de volgende query uitvoert, worden alle eerder verzamelde bewaakte telemetriegegevens in Query Store verwijderd.

    ALTER DATABASE [YourDB] SET QUERY_STORE CLEAR;

Volgende stappen

Overweeg het gebruik van Azure SQL Analytics voor geavanceerde prestatiebewaking van een groot aantal individuele en pooldatabases, elastische pools, beheerde exemplaren en exemplaardatabases.