Query Performance Insight pro službu Azure SQL Database

Platí pro: Azure SQL Database

Query Performance Insight nabízí inteligentní analýzu dotazů pro izolované databáze i databáze ve fondu. Pomáhá v úlohách identifikovat dotazy s nejvyšším využitím prostředků a nejdéle trvající dotazy. To vám pomůže najít dotazy, které byste měli optimalizovat, abyste zlepšili celkový výkon úloh a efektivně využívali prostředky, za které platíte. Query Performance Insight vám pomůže zkrátit čas strávený při odstraňování potíží s výkonem databáze, protože vám poskytne:

  • Hlubší přehled o spotřebě prostředků databází (DTU)
  • Podrobnosti o nejčastějších databázových dotazech podle procesoru, doby trvání a počtu spuštění (potenciální kandidáti na ladění pro vylepšení výkonu)
  • Možnost přejít k podrobnostem dotazu a zobrazit text dotazu a historii využití prostředků
  • Poznámky, které zobrazují doporučení k výkonu od databázových poradců

Snímek obrazovky se stránkou Query Performance Insight na webu Azure Portal

Požadavky

Query Performance Insight vyžaduje, aby úložiště dotazů bylo ve vaší databázi aktivní. Ve výchozím nastavení je tento nástroj automaticky povolený pro všechny databáze v Azure SQL Database. Pokud úložiště dotazů není spuštěné, vyzve vás web Azure Portal, abyste ho povolili.

Poznámka:

Pokud se na portálu zobrazí zpráva oznamující, že úložiště dotazů není pro tuto databázi správně nakonfigurované, podívejte se na článek o optimalizaci konfigurace úložiště dotazů.

Oprávnění

K používání nástroje Query Performance Insight potřebujete následující oprávnění řízení přístupu na základě role (Azure RBAC):

  • K zobrazení dotazů a grafů s nejvyšším využitím prostředků se vyžadují oprávnění čtenáře, vlastníka, přispěvatele, přispěvatele databáze SQL nebo přispěvatele SQL Serveru.
  • K zobrazení textu dotazu se vyžaduje oprávnění vlastníka, přispěvatele, přispěvatele databáze SQL nebo přispěvatele SQL Serveru.

Použití nástroje Query Performance Insight

Query Performance Insight se snadno používá:

  1. Otevřete Azure Portal a vyhledejte databázi, kterou chcete prozkoumat.

  2. V nabídce na levé straně otevřete Intelligent Performance>Query Performance Insight.

    Snímek obrazovky s přehledem výkonu dotazů v nabídce prostředků webu Azure Portal

  3. Na první kartě si prohlédněte seznam dotazů s nejvyšším využitím prostředků.

  4. Výběrem jednotlivého dotazu zobrazíte jeho podrobnosti.

  5. Otevřete doporučení k inteligentnímu výkonu>a zkontrolujte, jestli jsou k dispozici nějaká doporučení k výkonu. Další informace o integrovaných doporučeních k výkonu najdete v tématu Azure SQL Database Advisor.

  6. Pomocí posuvníků nebo ikon lupy můžete změnit pozorovaný interval.

    Snímek obrazovky řídicího panelu výkonu na webu Azure Portal

Poznámka:

Aby služba Azure SQL Database vykreslovat informace v Nástroji Query Performance Insight, potřebuje zachytávat několik hodin dat. Pokud databáze nemá žádnou aktivitu nebo pokud úložiště dotazů během určitého období nebylo aktivní, grafy budou prázdné, když Query Performance Insight zobrazí tento časový rozsah. Úložiště dotazů můžete kdykoli povolit, pokud není spuštěné. Další informace najdete v tématu Osvědčené postupy pro úložiště dotazů.

Pro doporučení k výkonu databáze vyberte Doporučení v navigačním podokně Query Performance Insight.

Snímek obrazovky s kartou Doporučení na webu Azure Portal

Kontrola dotazů s nejvyšším využitím procesoru

Ve výchozím nastavení nástroj Query Performance Insight při prvním otevření zobrazuje pět nejčastějších dotazů využívajících procesor.

  1. Pomocí zaškrtávacích políček vyberte nebo zrušte zaškrtnutí jednotlivých dotazů, které chcete zahrnout nebo vyloučit z grafu.

    Horní řádek zobrazuje celkové procento DTU pro databázi. Pruhy zobrazují procento procesoru, které vybrané dotazy spotřebovaly během vybraného intervalu. Pokud je například vybrán minulý týden , představuje každý pruh jeden den.

    Snímek obrazovky s hlavními dotazy na webu Azure Portal

    Důležité

    Zobrazený řádek DTU se agreguje na maximální hodnotu spotřeby v hodinových obdobích. Je určená pouze pro porovnání vysoké úrovně se statistikami provádění dotazů. V některých případech se využití DTU může zdát příliš vysoké oproti spuštěným dotazům, ale nemusí se jednat o tento případ.

    Pokud například dotaz na několik minut dosáhl maximálního počtu DTU na 100 %, zobrazí se řádek DTU v Nástroji Query Performance Insight celou hodinu spotřeby jako 100 % (následkem maximální agregované hodnoty).

    V případě jemného porovnání (až jednu minutu) zvažte vytvoření vlastního grafu využití DTU:

    1. Na webu Azure Portal vyberte Monitorování služby Azure SQL Database>.
    2. Vyberte Metriky.
    3. Vyberte +Přidat graf.
    4. Vyberte procento DTU v grafu.
    5. Kromě toho v levé horní nabídce vyberte Posledních 24 hodin a změňte ho na jednu minutu.

    Pomocí vlastního grafu DTU s jemně vyšší úrovní podrobností můžete porovnat s grafem provádění dotazu.

    Dolní mřížka zobrazuje agregované informace pro viditelné dotazy:

    • ID dotazu, což je jedinečný identifikátor dotazu v databázi.
    • Procesor na dotaz během pozorovatelného intervalu, který závisí na agregační funkci.
    • Doba trvání dotazu, která také závisí na agregační funkci.
    • Celkový počet spuštění pro konkrétní dotaz
  2. Pokud jsou vaše data zastaralá, vyberte tlačítko Aktualizovat .

  3. Pomocí posuvníků a tlačítek lupy můžete změnit interval pozorování a prozkoumat špičky spotřeby:

    Snímek obrazovky s použitím posuvníků a tlačítek lupy ke změně intervalu na webu Azure Portal

  4. Volitelně můžete vybrat kartu Vlastní a přizpůsobit zobrazení pro:

    • Metrika (procesor, doba trvání, počet provádění).
    • Časový interval (posledních 24 hodin, minulý týden nebo minulý měsíc)
    • Počet dotazů
    • Agregační funkce

    Snímek obrazovky s vlastní kartou na webu Azure Portal

  5. Výběrem tlačítka Přejít > zobrazíte přizpůsobené zobrazení.

    Důležité

    Query Performance Insight je omezený na zobrazení 5 až 20 nejčastějších dotazů v závislosti na vašem výběru. Vaše databáze může spouštět mnoho dalších dotazů nad rámec zobrazených dotazů a tyto dotazy nebudou zahrnuty do grafu.

    Může existovat typ databázové úlohy, ve kterém se často spouští velké množství menších dotazů nad rámec zobrazených dotazů a používá většinu DTU. Tyto dotazy se nezobrazují v grafu výkonu.

    Například dotaz mohl nějakou dobu spotřebovat značné množství DTU, i když jeho celková spotřeba v pozorovaném období je menší než ostatní dotazy s nejvyšším využitím. V takovém případě se využití prostředků tohoto dotazu v grafu nezobrazí.

    Pokud potřebujete porozumět hlavním spouštěním dotazů nad rámec omezení nástroje Query Performance Insight, zvažte použití sledovacího nástroje pro pokročilé monitorování výkonu databáze a řešení potíží.

Zobrazení podrobností o jednotlivých dotazech

Zobrazení podrobností dotazu:

  1. V seznamu nejčastějších dotazů vyberte libovolný dotaz.

    Snímek obrazovky se seznamem nejčastějších dotazů na webu Azure Portal

    Otevře se podrobné zobrazení. Zobrazuje počet využití procesoru, doby trvání a provádění v průběhu času.

  2. Podrobnosti zobrazíte výběrem funkcí grafu.

    • Horní graf zobrazuje čáru s celkovým procentem DTU databáze. Pruhy jsou procento procesoru, které vybraný dotaz spotřeboval.
    • Druhý graf zobrazuje celkovou dobu trvání vybraného dotazu.
    • Dolní graf zobrazuje celkový počet spuštění vybraným dotazem.

    Snímek obrazovky s podrobnostmi dotazu na webu Azure Portal

  3. Volitelně můžete použít posuvníky, použít tlačítka lupy nebo vybrat Nastavení pro přizpůsobení způsobu zobrazení dat dotazu nebo výběru jiného časového rozsahu.

    Důležité

    Query Performance Insight nezachytává žádné dotazy DDL. V některých případech nemusí zaznamenávat všechny ad hoc dotazy.

    Pokud je vaše databáze uzamčená zámkem jen pro čtení, podokno podrobností dotazu nebude možné načíst.

Kontrola nejčastějších dotazů za dobu trvání

Dvě metriky v Nástroji Query Performance Insight vám můžou pomoct najít potenciální kritické body: dobu trvání a počet spuštění.

Dlouhotrvající dotazy mají největší potenciál pro delší uzamčení prostředků, blokování jiných uživatelů a omezení škálovatelnosti. Jsou také nejlepšími kandidáty pro optimalizaci. Další informace najdete v tématu Vysvětlení a řešení problémů blokujících Azure SQL.

Identifikace dlouhotrvajících dotazů:

  1. Otevřete kartu Vlastní v nástroji Query Performance Insight pro vybranou databázi.

  2. Změňte metriky na dobu trvání.

  3. Vyberte počet dotazů a interval pozorování.

  4. Vyberte agregační funkci:

    • Součet sečte všechny časy provádění dotazů pro celý interval pozorování.
    • Max najde dotazy, ve kterých byla doba provádění maximální pro celý interval pozorování.
    • Avg najde průměrnou dobu provádění všech spuštění dotazů a zobrazí nejvyšší čas pro tyto průměry.

    Snímek obrazovky znázorňující dobu trvání dotazu na webu Azure Portal

  5. Výběrem tlačítka Přejít > zobrazíte přizpůsobené zobrazení.

    Důležité

    Úprava zobrazení dotazu neaktualizuje řádek DTU. Řádek DTU vždy zobrazuje maximální hodnotu spotřeby pro interval.

    Pokud chcete porozumět využití DTU databáze s dalšími podrobnostmi (až jednu minutu), zvažte vytvoření vlastního grafu na webu Azure Portal:

    1. Vyberte Monitorování služby Azure SQL Database>.
    2. Vyberte Metriky.
    3. Vyberte +Přidat graf.
    4. Vyberte procento DTU v grafu.
    5. Kromě toho v levé horní nabídce vyberte Posledních 24 hodin a změňte ho na jednu minutu.

    K porovnání s grafem výkonu dotazů doporučujeme použít vlastní graf DTU.

Kontrola nejčastějších dotazů na počet spuštění

Uživatelská aplikace, která databázi používá, může být pomalá, i když velký počet spuštění nemusí mít vliv na samotnou databázi a využití prostředků je nízké.

V některýchpřípadechch Doba odezvy ovlivňuje výkon. Podléhají latenci sítě a latenci podřízených serverů.

Mnoho webů řízených daty například silně přistupuje k databázi pro každou žádost uživatele. I když sdružování připojení pomáhá, vyšší zatížení síťového provozu a zpracování na serveru může zpomalit výkon. Obecně platí, že zaokrouhlujte na minimum.

Identifikace často spouštěných ("chatty") dotazů:

  1. Otevřete kartu Vlastní v nástroji Query Performance Insight pro vybranou databázi.

  2. Změňte metriky na počet spuštění.

  3. Vyberte počet dotazů a interval pozorování.

  4. Výběrem tlačítka Přejít > zobrazíte přizpůsobené zobrazení.

    Snímek obrazovky zobrazující počet provádění dotazů na webu Azure Portal

Vysvětlení poznámek k ladění výkonu

Při zkoumání úloh v Nástroji Query Performance Insight si můžete všimnout ikon se svislou čárou nad grafem.

Tyto ikony jsou poznámky. Zobrazují doporučení k výkonu z Azure SQL Database Advisoru. Když najedete myší na poznámku, můžete získat souhrnné informace o doporučeních k výkonu.

Snímek obrazovky s poznámkou k dotazu na webu Azure Portal

Pokud chcete porozumět více doporučením poradce nebo ho použít, výběrem ikony otevřete podrobnosti o doporučené akci. Pokud se jedná o aktivní doporučení, můžete ho hned použít na portálu.

Snímek obrazovky zobrazující podrobnosti poznámek k dotazu na webu Azure Portal

V některých případech je možné, že se poznámky blízko sebe navzájem sbalí do jedné poznámky. Query Performance Insight představuje tuto funkci jako ikonu skupinové poznámky. Výběrem ikony skupinové poznámky se otevře nové podokno se seznamem poznámek.

Korelace dotazů a akcí ladění výkonu vám můžou pomoct lépe porozumět úlohám.

Optimalizace konfigurace úložiště dotazů

Při používání nástroje Query Performance Insight se můžou zobrazit následující chybové zprávy úložiště dotazů:

  • Úložiště dotazů není pro tuto databázi správně nakonfigurované. Další informace získáte kliknutím sem.
  • Úložiště dotazů není pro tuto databázi správně nakonfigurované. Pokud chcete změnit nastavení, vyberte toto nastavení.

Tyto zprávy se obvykle zobrazují, když úložiště dotazů nemůže shromažďovat nová data.

První případ nastane, když je úložiště dotazů ve stavu jen pro čtení a parametry jsou nastaveny optimálně. Tento problém můžete vyřešit zvětšením velikosti úložiště dat nebo zrušením zaškrtnutí políčka Úložiště dotazů. (Pokud vymažete úložiště dotazů, ztratí se všechna dříve shromážděná telemetrie.)

Snímek obrazovky zobrazující podrobnosti úložiště dotazů na webu Azure Portal

K druhému případu dochází v případě, že úložiště dotazů není povolené nebo nejsou parametry nastaveny optimálně. Zásady uchovávání informací a zachycení můžete změnit a také povolit úložiště dotazů spuštěním následujících příkazů T-SQL, které poskytují editor dotazů webu Azure Portal, SQL Server Management Studio (SSMS), Azure Data Studio, sqlcmd nebo klientský nástroj podle vašeho výběru.

Existují dva typy zásad uchovávání informací:

  • Na základě velikosti: Pokud je tato zásada nastavená na AUTO, data se při dosažení téměř maximální velikosti automaticky vyčistí.
  • Na základě času: Ve výchozím nastavení je tato zásada nastavená na 30 dnů. Pokud úložiště dotazů vyčerpá místo, odstraní informace o dotazu starší než 30 dnů.

Zásady zachytávání můžete nastavit na:

  • Vše: Úložiště dotazů zachycuje všechny dotazy.
  • Auto: Úložiště dotazů ignoruje občasné dotazy a dotazy s nevýznamnou dobou kompilace a doby trvání provádění. Prahové hodnoty počtu spuštění, doby trvání kompilace a doby trvání modulu runtime jsou interně určeny. Toto je výchozí možnost.
  • Žádné: Úložiště dotazů přestane zachytávat nové dotazy, ale statistiky modulu runtime pro již zachycené dotazy se stále shromažďují.

Doporučujeme nastavit všechny zásady na automatické a čisticí zásady na 30 dnů spuštěním následujících příkazů ze služby SSMS nebo webu Azure Portal. (Nahraďte YourDB názvem databáze.)

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

Zvětšete velikost úložiště dotazů připojením k databázi prostřednictvím SSMS nebo webu Azure Portal a spuštěním následujícího dotazu. (Nahraďte YourDB názvem databáze.)

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

Když použijete tato nastavení, úložiště dotazů nakonec shromáždí telemetrii pro nové dotazy. Pokud potřebujete, aby úložiště dotazů fungovalo hned, můžete se volitelně rozhodnout vymazat úložiště dotazů spuštěním následujícího dotazu prostřednictvím SSMS nebo webu Azure Portal. (Nahraďte YourDB názvem databáze.)

Poznámka:

Spuštěním následujícího dotazu odstraníte veškerou dříve shromážděnou monitorovanou telemetrii v úložišti dotazů.

    ALTER DATABASE [YourDB] SET QUERY_STORE CLEAR;

Další krok