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:

  • Dieper inzicht in het verbruik van uw databasesresources (DTU)
  • Details over de belangrijkste databasequery's per CPU, duur en uitvoeringsaantal (mogelijke afstemmingskandidaten voor prestatieverbeteringen)
  • De mogelijkheid om in te zoomen op details van een query om de querytekst en geschiedenis van resourcegebruik weer te geven
  • Aantekeningen die prestatieaanvelingen van databaseadviseurs weergeven

Query Performance Insight

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).

Bevoegdheden

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

  • Lezer-, eigenaar-, inzender-, SQL DB-inzender- of SQL Server-inzendermachtigingen zijn vereist voor het weergeven van de belangrijkste query's en grafieken die resources verbruiken.
  • Machtigingen voor 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 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 on the menu

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

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

  5. Open Aanbevelingen voor Intelligente prestatieprestaties> en controleer of er prestatieaankopen beschikbaar zijn. Zie Azure SQL Database Advisor voor meer informatie over ingebouwde prestatieaanbeveling.

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

    Performance dashboard

Notitie

Om de informatie in Query Performance Insight weer te geven in Azure SQL Database, 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 voor Query Store voor meer informatie.

Selecteer Aanbevelingen op de navigatieblade Query Performance Insight voor aanbevelingen voor databaseprestaties.

The Recommendations tab

De belangrijkste CPU-verbruikende query's bekijken

Query Performance Insight toont standaard de vijf belangrijkste 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.

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

    Top queries

    Belangrijk

    De weergegeven DTU-regel wordt samengevoegd tot een maximumverbruikswaarde in perioden van één uur. Deze is alleen bedoeld voor een vergelijking op hoog niveau met queryuitvoeringsstatistieken. 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 enkele minuten DTU tot 100% heeft overschreden, wordt op de DTU-regel in Query Performance Insight het hele verbruiksuur weergegeven als 100% (het gevolg van de maximaal geaggregeerde waarde).

    Voor een nauwkeurigere vergelijking (maximaal één minuut) kunt u een aangepast DTU-gebruiksdiagram maken:

    1. Selecteer Azure SQL Database>Monitoring in de Azure-portal.
    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 deze in één minuut.

    Gebruik de aangepaste DTU-grafiek met een nauwkeuriger detailniveau om te vergelijken met de grafiek voor het uitvoeren van query's.

    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.
    • Totaal 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:

    Sliders and zoom buttons for changing the interval

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

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

    Custom tab

  5. Selecteer de knop Start > 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 nog veel meer query's uitvoeren dan de weergegeven query's. Deze query's worden niet opgenomen in de grafiek.

    Er kan een databaseworkloadtype bestaan waarin veel kleinere query's, naast de weergegeven query's, vaak worden uitgevoerd en het merendeel van de DTU's worden gebruikt. Deze query's worden niet weergegeven in de prestatiegrafiek.

    Een query kan bijvoorbeeld al een tijdje een aanzienlijke hoeveelheid DTU hebben verbruikt, hoewel het totale verbruik in de waargenomen periode kleiner is dan de andere meest gebruikte query's. In dat geval wordt het resourcegebruik van deze query niet weergegeven in de grafiek.

    Als u meer wilt weten over de belangrijkste queryuitvoeringen buiten de beperkingen van Query Performance Insight, kunt u Overwegen Om Azure SQL Insights te gebruiken voor geavanceerde bewaking van databaseprestaties en probleemoplossing.

Details van afzonderlijke query's weergeven

Querydetails weergeven:

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

    List of top queries

    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 het bovenste diagram ziet u een lijn met het totale DTU-percentage van de database. De balken zijn het CPU-percentage dat de geselecteerde query heeft verbruikt.
    • In de tweede grafiek ziet u de totale duur van de geselecteerde query.
    • In het onderste diagram ziet u het totale aantal uitvoeringen door de geselecteerde query.

    Query details

  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 uw database is vergrendeld met een alleen-lezenvergrendeling, kan de blade met querygegevens niet worden geladen.

Topquery's per duur bekijken

Met twee metrische gegevens in Query Performance Insight kunt u potentiële knelpunten vinden: duur en aantal uitvoeringen.

Langlopende query's hebben het grootste potentieel voor het langer vergrendelen van resources, het blokkeren van andere gebruikers en het beperken van schaalbaarheid. Ze zijn ook de beste kandidaten voor optimalisatie. Zie Azure SQL-blokkeringsproblemen 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 observatieinterval.

  4. Selecteer de aggregatiefunctie:

    • Som telt alle uitvoeringstijd van query's voor het hele observatieinterval op.
    • Max vindt query's waarin de uitvoeringstijd voor het hele observatieinterval maximaal was.
    • Avg vindt de gemiddelde uitvoeringstijd van alle queryuitvoeringen en toont u de belangrijkste voor deze gemiddelden.

    Query duration

  5. Selecteer de knop Start > 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 maximumverbruikswaarde voor het interval weer.

    Voor meer informatie over het DTU-verbruik van databases met meer details (maximaal één minuut), kunt u een aangepaste grafiek maken in Azure Portal:

    1. Selecteer Azure SQL Database-bewaking>.
    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 deze in één minuut.

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

Bekijk de belangrijkste query's per uitvoeringsaantal

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

In sommige gevallen kan een hoog aantal uitvoeringen leiden tot meer netwerkrondes. 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, kan de toegenomen belasting van het netwerkverkeer en de verwerkingsbelasting op de server de prestaties vertragen. Over het algemeen moet u de retouren tot een minimum beperken.

Veelgebruikte query's ('chatty') 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 observatieinterval.

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

    Query execution count

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 geven prestatieaankopen weer van Azure SQL Database Advisor. Door de muisaanwijzer op een aantekening te bewegen, kunt u samengevatte informatie krijgen over aanbevelingen voor prestaties.

Query annotation

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.

Query annotation details

In sommige gevallen is het mogelijk dat aantekeningen dicht bij elkaar worden samengevouwen in één aantekening. Query Performance Insight vertegenwoordigt dit als een pictogram voor groepsaantekening. 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.

De Query Store-configuratie optimaliseren

Tijdens het gebruik van Query Performance Insight ziet u mogelijk de volgende foutberichten over Query Store:

  • '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 treedt op 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.)

Query Store details

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 ook inschakelen door de volgende T-SQL-opdrachten uit te voeren die de Query-editor van Azure Portal, SQL Server Management Studio (SSMS), Azure Data Studio, sqlcmd of het clienthulpprogramma van uw keuze hebben.

Er zijn twee soorten bewaarbeleid:

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

U kunt het opnamebeleid instellen op:

  • Alle: Query Store legt alle query's vast.
  • Auto: Query Store negeert onregelmatige query's en query's met een onbelangrijke compileer- en uitvoeringsduur. Drempelwaarden voor het aantal uitvoeringen, de compileerduur en de runtimeduur worden intern bepaald. Dit is de standaardwaarde.
  • 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 schoonmaakbeleid op 30 dagen door de volgende opdrachten uit te voeren vanuit SSMS of 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 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);

Als u deze instellingen toepast, worden in Query Store uiteindelijk telemetriegegevens verzameld voor nieuwe query's. Als u Query Store direct wilt laten werken, kunt u er desgewenst voor kiezen om Query Store te wissen door de volgende query uit te voeren via SSMS of Azure Portal. (Vervang door YourDB de databasenaam.)

Notitie

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

    ALTER DATABASE [YourDB] SET QUERY_STORE CLEAR;

Volgende stappen

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