Query Performance Insight för Azure SQL Database

Gäller för:Azure SQL Database

Query Performance Insight ger intelligent frågekörning för enskilda databaser och pooldatabaser. Verktyget hjälper dig att identifiera de resurser i arbetsbelastningen som har högst resursanvändning och som är mest tidskrävande. På så sätt blir det enklare att hitta frågorna som kan optimera arbetsbelastningens prestanda, samt att använda den resurs som du betalar för så effektivt som möjligt. Query Performance Insight hjälper dig så att du kan ägna mindre tid åt att felsöka databasprestanda genom att tillhandahålla:

  • Djupare insikt i förbrukningen av databasresurser (DTU)
  • Information om de vanligaste databasfrågorna efter cpu, varaktighet och körningsantal (potentiella justeringskandidater för prestandaförbättringar)
  • Möjligheten att öka detaljnivån för en fråga för att visa frågetexten och historiken för resursanvändning
  • Anteckningar som visar prestandarekommendationer från databasrådgivare

Query Performance Insight

Förutsättningar

Query Performance Insight kräver att Query Store är aktivt i databasen. Den aktiveras automatiskt för alla databaser i Azure SQL Database som standard. Om Query Store inte körs uppmanas du att aktivera den i Azure Portal.

Kommentar

Om meddelandet "Query Store inte har konfigurerats korrekt på den här databasen" visas i portalen, så läs Optimera Query Store-konfigurationen.

Behörigheter

Du behöver följande behörigheter för rollbaserad åtkomstkontroll i Azure (Azure RBAC) om du ska kunna använda Query Performance Insight:

  • Behörigheter för läsare, ägare, deltagare, SQL DB-deltagare eller SQL Server-deltagare krävs för att visa de viktigaste resurskrävande frågorna och diagrammen.
  • Behörigheter som ägare, deltagare, SQL DB-deltagare eller SQL Server-deltagare krävs för att visa frågetext.

Använda Query Performance Insight

Query Performance Insight är lätt att använda:

  1. Öppna Azure-portalen och hitta en databas som du vill undersöka.

  2. Öppna Intelligent Performance>Query Performance Insight på menyn till vänster.

    Query Performance Insight on the menu

  3. På den första fliken granskar du listan över de vanligaste resurskrävande frågorna.

  4. Välj en enskild fråga för att visa dess information.

  5. Öppna rekommendationer för intelligent prestanda>och kontrollera om det finns några prestandarekommendationer. Mer information om inbyggda prestandarekommendationer finns i Azure SQL Database Advisor.

  6. Använd skjutreglage eller zoomikoner för att ändra det observerade intervallet.

    Performance dashboard

Kommentar

För att Azure SQL Database ska kunna återge informationen i Query Performance Insight måste Query Store samla in ett par timmars data. Om databasen inte har någon aktivitet eller om Query Store inte var aktivt under en viss period är diagrammen tomma när Query Performance Insight visar det tidsintervallet. Du kan aktivera Query Store när som helst om det inte körs. Mer information finns i Metodtips med Query Store.

För rekommendationer för databasprestanda väljer du Rekommendationer på navigeringsbladet Query Performance Insight.

The Recommendations tab

Granska de vanligaste CPU-förbrukningsfrågorna

Som standard visar Query Performance Insight de fem mest processorkrävande frågorna när du öppnar den.

  1. Markera eller avmarkera enskilda frågor för att inkludera eller exkludera dem från diagrammet med hjälp av kryssrutor.

    Den översta raden visar den totala DTU-procentandelen för databasen. Staplarna visar cpu-procent som de valda frågorna förbrukade under det valda intervallet. Om till exempel Den senaste veckan har valts representerar varje stapel en enda dag.

    Top queries

    Viktigt!

    Den DTU-rad som visas aggregeras till ett maximalt förbrukningsvärde under entimmesperioder. Det är endast avsett för en jämförelse på hög nivå med frågekörningsstatistik. I vissa fall kan DTU-användningen verka för hög jämfört med körda frågor, men så är kanske inte fallet.

    Om en fråga till exempel maxade DTU till 100 % under bara några minuter visar DTU-raden i Query Performance Insight hela förbrukningstimmet som 100 % (konsekvensen av det maximala aggregerade värdet).

    För en finare jämförelse (upp till en minut) bör du överväga att skapa ett anpassat DTU-användningsdiagram:

    1. I Azure-portalen väljer du Övervakning av Azure SQL Database>.
    2. Välj Mått.
    3. Välj +Lägg till diagram.
    4. Välj DTU-procentandelen i diagrammet.
    5. Välj dessutom Senaste 24 timmarna på menyn längst upp till vänster och ändra den till en minut.

    Använd det anpassade DTU-diagrammet med en finare detaljnivå för att jämföra med frågekörningsdiagrammet.

    Det nedre rutnätet visar aggregerad information för de synliga frågorna:

    • Fråge-ID, som är en unik identifierare för frågan i databasen.
    • CPU per fråga under ett observerbart intervall, vilket beror på aggregeringsfunktionen.
    • Varaktighet per fråga, vilket också beror på aggregeringsfunktionen.
    • Totalt antal körningar för en specifik fråga.
  2. Om dina data blir inaktuella väljer du knappen Uppdatera .

  3. Använd skjutreglage och zoomknappar för att ändra observationsintervallet och undersöka förbrukningstoppar:

    Sliders and zoom buttons for changing the interval

  4. Du kan också välja fliken Anpassad för att anpassa vyn för:

    • Mått (CPU, varaktighet, körningsantal).
    • Tidsintervall (senaste 24 timmarna, senaste veckan eller senaste månaden).
    • Antal frågor.
    • Sammansättningsfunktion.

    Custom tab

  5. Välj knappen Gå > för att se den anpassade vyn.

    Viktigt!

    Query Performance Insight är begränsat till att visa de 5–20 vanligaste frågorna, beroende på ditt val. Databasen kan köra många fler frågor utöver de vanligaste frågorna som visas, och dessa frågor tas inte med i diagrammet.

    Det kan finnas en databasarbetsbelastningstyp där många mindre frågor, utöver de viktigaste som visas, körs ofta och använder majoriteten av DTU. Dessa frågor visas inte i prestandadiagrammet.

    En fråga kan till exempel ha förbrukat en betydande mängd DTU ett tag, även om den totala förbrukningen under den observerade perioden är mindre än de andra frågor som förbrukar mest. I sådana fall visas inte resursanvändningen för den här frågan i diagrammet.

    Om du behöver förstå de vanligaste frågekörningarna utöver begränsningarna i Query Performance Insight kan du överväga att använda Azure SQL Insights för avancerad övervakning och felsökning av databasprestanda.

Visa information om enskilda frågor

Så här visar du frågeinformation:

  1. Välj valfri fråga i listan med de vanligaste frågorna.

    List of top queries

    En detaljerad vy öppnas. Den visar antalet cpu-förbrukning, varaktighet och körning över tid.

  2. Välj diagramfunktionerna för mer information.

    • Det översta diagrammet visar en linje med den totala databasens DTU-procentandel. Staplarna är den CPU-procentandel som den valda frågan förbrukade.
    • Det andra diagrammet visar den totala varaktigheten för den valda frågan.
    • Det nedre diagrammet visar det totala antalet körningar av den valda frågan.

    Query details

  3. Du kan också använda skjutreglage, använda zoomknappar eller välja Inställningar för att anpassa hur frågedata visas eller välja ett annat tidsintervall.

    Viktigt!

    Query Performance Insight samlar inte in några DDL-frågor. I vissa fall kanske den inte samlar in alla ad hoc-frågor.

    Om databasen är omfångslåst med ett skrivskyddat lås kan frågeinformationsbladet inte läsas in.

Granska de vanligaste frågorna per varaktighet

Två mått i Query Performance Insight kan hjälpa dig att hitta potentiella flaskhalsar: varaktighet och körningsantal.

Långvariga frågor har störst potential att låsa resurser längre, blockera andra användare och begränsa skalbarheten. De är också de bästa kandidaterna för optimering. Mer information finns i Förstå och lösa azure SQL-blockeringsproblem.

Så här identifierar du långvariga frågor:

  1. Öppna fliken Anpassad i Query Performance Insight för den valda databasen.

  2. Ändra måtten till varaktighet.

  3. Välj antalet frågor och observationsintervallet.

  4. Välj aggregeringsfunktionen:

    • Sum lägger till all körningstid för frågor för hela observationsintervallet.
    • Max hittar frågor där körningstiden var högst för hela observationsintervallet.
    • Genomsnitt hittar den genomsnittliga körningstiden för alla frågekörningar och visar de främsta för dessa medelvärden.

    Query duration

  5. Välj knappen Gå > för att se den anpassade vyn.

    Viktigt!

    Om du justerar frågevyn uppdateras inte DTU-raden. DTU-raden visar alltid det maximala förbrukningsvärdet för intervallet.

    Om du vill förstå databasens DTU-förbrukning med mer information (upp till en minut) kan du skapa ett anpassat diagram i Azure-portalen:

    1. Välj Övervakning av Azure SQL Database>.
    2. Välj Mått.
    3. Välj +Lägg till diagram.
    4. Välj DTU-procentandelen i diagrammet.
    5. Välj dessutom Senaste 24 timmarna på menyn längst upp till vänster och ändra den till en minut.

    Vi rekommenderar att du använder det anpassade DTU-diagrammet för att jämföra med frågeprestandadiagrammet.

Granska de vanligaste frågorna per körningsantal

Ett användarprogram som använder databasen kan bli långsamt, även om ett stort antal körningar kanske inte påverkar själva databasen och resursanvändningen är låg.

I vissa fall kan ett högt antal körningar leda till fler turer i nätverket. Tur och retur påverkar prestandan. De är föremål för nätverksfördröjning och nedströmsserverfördröjning.

Till exempel har många datadrivna webbplatser stor åtkomst till databasen för varje användarbegäran. Även om anslutningspooler hjälper kan den ökade nätverkstrafiken och bearbetningsbelastningen på servern försämra prestandan. I allmänhet bör du hålla tur och retur till ett minimum.

Så här identifierar du ofta utförda ("chattiga") frågor:

  1. Öppna fliken Anpassad i Query Performance Insight för den valda databasen.

  2. Ändra måtten till körningsantal.

  3. Välj antalet frågor och observationsintervallet.

  4. Välj knappen Gå > för att se den anpassade vyn.

    Query execution count

Förstå anteckningar för prestandajustering

När du utforskar din arbetsbelastning i Query Performance Insight kan du märka ikoner med en lodrät linje överst i diagrammet.

Dessa ikoner är anteckningar. De visar prestandarekommendationer från Azure SQL Database Advisor. Genom att hovra över en anteckning kan du få sammanfattad information om prestandarekommendationer.

Query annotation

Om du vill förstå mer eller tillämpa rekommendationen från rådgivaren väljer du ikonen för att öppna information om den rekommenderade åtgärden. Om detta är en aktiv rekommendation kan du tillämpa den direkt från portalen.

Query annotation details

I vissa fall, på grund av zoomnivån, är det möjligt att anteckningar nära varandra komprimeras till en enda anteckning. Query Performance Insight representerar detta som en gruppanteckningsikon. Om du väljer gruppanteckningsikonen öppnas ett nytt blad som visar anteckningarna.

Korrelering av frågor och åtgärder för prestandajustering kan hjälpa dig att bättre förstå din arbetsbelastning.

Optimera Query Store-konfigurationen

När du använder Query Performance Insight kan följande felmeddelanden visas i Query Store:

  • "Query Store är inte korrekt konfigurerat på den här databasen. Klicka här för mer information.”
  • "Query Store är inte korrekt konfigurerat på den här databasen. Klicka här om du vill ändra inställningarna.”

Dessa meddelanden visas vanligtvis när Query Store inte kan samla in nya data.

Det första fallet inträffar när Query Store är i skrivskyddat tillstånd och parametrarna anges optimalt. Du kan åtgärda detta genom att öka storleken på datalagret eller genom att rensa Query Store. (Om du rensar Query Store går all tidigare insamlad telemetri förlorad.)

Query Store details

Det andra fallet inträffar när Query Store inte är aktiverat eller om parametrarna inte anges optimalt. Du kan ändra kvarhållnings- och insamlingsprincipen och även aktivera Query Store genom att köra följande T-SQL-kommandon som tillhandahålls i Azure-portalens frågeredigerare, SQL Server Management Studio (SSMS), Azure Data Studio, sqlcmd eller det klientverktyg du väljer.

Det finns två typer av kvarhållningsprinciper:

  • Storleksbaserad: Om den här principen är inställd på AUTO rensas data automatiskt när nästan maximal storlek har uppnåtts.
  • Tidsbaserad: Som standard är den här principen inställd på 30 dagar. Om Query Store får slut på utrymme tar den bort frågeinformation som är äldre än 30 dagar.

Du kan ange avbildningsprincipen till:

  • Alla: Query Store samlar in alla frågor.
  • Auto: Query Store ignorerar ovanliga frågor och frågor med obetydlig kompilerings- och körningstid. Tröskelvärden för körningsantal, kompileringstid och körningstid bestäms internt. Detta är standardförslaget.
  • Ingen: Query Store slutar samla in nya frågor, men körningsstatistik för redan insamlade frågor samlas fortfarande in.

Vi rekommenderar att du ställer in alla principer på AUTO och rensningsprincipen till 30 dagar genom att köra följande kommandon från SSMS eller Azure-portalen. (Ersätt YourDB med databasnamnet.)

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

Öka storleken på Query Store genom att ansluta till en databas via SSMS eller Azure-portalen och köra följande fråga. (Ersätt YourDB med databasnamnet.)

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

Om du tillämpar de här inställningarna blir det så småningom att Query Store samlar in telemetri för nya frågor. Om du vill att Query Store ska fungera direkt kan du välja att rensa Query Store genom att köra följande fråga via SSMS eller Azure-portalen. (Ersätt YourDB med databasnamnet.)

Kommentar

Om du kör följande fråga tas all tidigare insamlad övervakad telemetri bort i Query Store.

    ALTER DATABASE [YourDB] SET QUERY_STORE CLEAR;

Nästa steg

Överväg att använda Azure SQL Analytics för avancerad prestandaövervakning av en stor flotta med enkla databaser och pooldatabaser, elastiska pooler, hanterade instanser och instansdatabaser.