Prozkoumání úložiště dotazů

Dokončeno

Úložiště dotazů SQL Serveru je funkce pro každou databázi, která automaticky zachycuje historii dotazů, plánů a statistik modulu runtime, aby se zjednodušilo řešení potíží s výkonem a ladění dotazů. Poskytuje také přehled o vzorech využití databáze a spotřebě prostředků.

Úložiště dotazů celkem obsahuje tři úložiště:

  • Úložiště plánů – používá se k ukládání informací o odhadovaném plánu provádění.
  • Úložiště statistik modulu runtime – používá se k ukládání informací o statistikách provádění.
  • Úložiště statistik čekání – pro zachování informací o statistikách čekání

Snímek obrazovky s komponentami úložiště dotazů

Povolení úložiště dotazů

Úložiště dotazů je ve výchozím nastavení povolené v databázích Azure SQL. Pokud ho chcete použít s SQL Serverem a Azure Synapse Analytics, musíte ho nejdřív povolit. Pokud chcete povolit funkci Úložiště dotazů, použijte následující dotaz platný pro vaše prostředí:

-- SQL Server
ALTER DATABASE <database_name> SET QUERY_STORE = ON (OPERATION_MODE = READ_WRITE);

-- Azure Synapse Analytics
ALTER DATABASE <database_name> SET QUERY_STORE = ON;

Jak úložiště dotazů shromažďuje data

Úložiště dotazů se integruje s kanálem zpracování dotazů v mnoha fázích. V každém bodu integrace se data shromažďují v paměti a zapisují se na disk asynchronně, aby se minimalizovaly režijní náklady na vstupně-výstupní operace. Integrační body jsou následující:

  1. Při prvním spuštění dotazu se text dotazu a počáteční odhadovaný plán provádění odešlou do úložiště dotazů a zachovají se.

  2. Plán se aktualizuje v úložišti dotazů, když se dotaz znovu zkompilí. Pokud výsledkem rekompilu je nově vygenerovaný plán provádění, zachová se také v úložišti dotazů, aby se rozšířily předchozí plány. Úložiště dotazů navíc sleduje statistiky provádění pro každý plán dotazů pro účely porovnání.

  3. Během kompilace a kontroly rekompilovaných fází úložiště dotazů identifikuje, jestli existuje vynucený plán pro spuštění dotazu. Dotaz se znovu zkompiluje, pokud úložiště dotazů poskytuje vynucený plán, který se liší od plánu v mezipaměti procedur.

  4. Když se dotaz spustí, jeho statistiky modulu runtime se zachovají v úložišti dotazů. Úložiště dotazů agreguje tato data, aby bylo zajištěno přesné znázornění každého plánu dotazu.

Snímek obrazovky s body integrace úložiště dotazů v kanálu spouštění dotazů zobrazeným jako vývojový diagram

Další informace o tom, jak úložiště dotazů shromažďuje data, najdete v tématu Jak úložiště dotazů shromažďuje data.

Obvyklé scénáře

Úložiště dotazů SQL Serveru poskytuje cenný přehled o výkonu operací prováděných v databázi. Mezi nejběžnější scénáře patří:

  • Identifikace a oprava regrese výkonu kvůli nižšímu výběru plánu provádění dotazů

  • Identifikace a ladění dotazů s nejvyšší spotřebou prostředků

  • Testování A/B za účelem vyhodnocení dopadů změn databáze a aplikací

  • Zajištění stability výkonu po upgradu SQL Serveru

  • Určení nejčastěji používaných dotazů

  • Auditování historie plánů dotazů pro dotaz

  • Identifikace a vylepšení ad hoc úloh

  • Seznamte se s nejčastějšími kategoriemi čekání databáze a přispívajícími dotazy a plány, které ovlivňují dobu čekání.

  • Analýza vzorů využití databáze v průběhu času, protože se vztahuje na spotřebu prostředků (procesor, vstupně-výstupní operace, paměť)

Zjištění zobrazení úložiště dotazů

Jakmile je úložiště dotazů pro databázi povolené, složka Úložiště dotazů se zobrazí pro databázi v Průzkumník objektů. Pro Azure Synapse Analytics se zobrazení úložiště dotazů zobrazí v části Systémová zobrazení. Zobrazení úložiště dotazů poskytují agregované a rychlé přehledy o aspektech výkonu databáze SQL Serveru.

Snímek obrazovky s Průzkumník objektů S S M S se zvýrazněným zobrazením úložiště dotazů

Dotazy s nižším výkonem

Regresní dotaz je dotaz, u kterého dochází ke snížení výkonu v průběhu času kvůli změnám plánu provádění. Odhadované změny plánů provádění z důvodu mnoha faktorů, včetně změn schématu, změn statistik a změn indexu Prvním instinktem může být prozkoumání mezipaměti procedur, ale problém s mezipamětí procedur spočívá v tom, že ukládá pouze nejnovější plán spuštění dotazu; i potom se plány vyřadí na základě požadavků na paměť systému. Úložiště dotazů však uchovává několik plánů provádění uložených pro každý dotaz, což poskytuje flexibilitu při výběru konkrétního plánu v konceptu známém jako vynucení k vyřešení problému s regresí výkonu dotazu způsobenou změnou plánu.

Zobrazení Regressed Queries (Regressed Queries ) může určit dotazy, jejichž metriky spouštění se regresí kvůli změnám plánu provádění v zadaném časovém rámci. Zobrazení Dotazy s nižším výkonem umožňuje filtrování na základě výběru metriky (například doby trvání, času procesoru, počtu řádků a dalších) a statistiky (celkem, průměr, minimum, maximum nebo směrodatná odchylka). V zobrazení se pak zobrazí prvních 25 dotazů s nižším přenosem dat na základě zadaného filtru. Ve výchozím nastavení se zobrazí grafické zobrazení pruhového grafu dotazů, ale volitelně můžete zobrazit dotazy ve formátu mřížky.

V podokně souhrnu plánu se zobrazují trvalé plány dotazů přidružené k dotazu v průběhu času po výběru dotazu z levého horního podokna dotazu. V dolním podokně se zobrazí grafický plán dotazu výběrem plánu dotazu v podokně Souhrn plánu. Tlačítka panelu nástrojů jsou k dispozici v podokně souhrnu plánu i v podokně plánu grafického dotazu, aby vybraný plán pro vybraný dotaz vynutil. Tato struktura podokna a chování se konzistentně používá ve všech zobrazeních dotazů SQL.

Snímek obrazovky se zobrazením Dotazů s nižším výkonem úložiště dotazů zobrazující každou z různých podoken

Případně můžete pomocí sp_query_store_force_plan uložené procedury použít vynucení plánu.

EXEC sp_query_store_force_plan @query_id=73, @plan_id=79

Celkové využití prostředku

Zobrazení Celkové využití prostředků umožňuje analyzovat celkovou spotřebu prostředků pro více metrik provádění (například počet spuštění, dobu trvání, dobu čekání a další) pro zadaný časový rámec. Vykreslené grafy jsou interaktivní; Při výběru míry z jednoho z grafů se na nové kartě zobrazí zobrazení přechodu k podrobnostem zobrazující dotazy spojené s vybranou mírou.

Snímek obrazovky s zobrazením celkové spotřeby prostředků úložiště dotazů SQL s dialogovým oknem konfigurace označujícím různé metriky, které jsou k dispozici pro zobrazení

Zobrazení podrobností obsahuje prvních 25 dotazů příjemce prostředků, které přispěly k vybrané metrice. Toto zobrazení podrobností používá konzistentní rozhraní, které umožňuje kontrolu přidružených dotazů a jejich podrobností, vyhodnocení uložených odhadovaných plánů dotazů a volitelně použití vynucení plánu ke zlepšení výkonu. Toto zobrazení je užitečné, když se kolize systémových prostředků stane problémem, například když využití procesoru dosáhne kapacity.

Snímek obrazovky s nejvyšším využitím prostředků 25 pro databázi

Dotazy nejvíce využívající prostředky

Zobrazení Dotazy s nejvyšším využitím prostředků je podobné podrobnostem zobrazení Celkové využití prostředků. Umožňuje také vybrat metriku a statistiku jako filtr. Zobrazené dotazy jsou ale 25 nejvýraznějších dotazů na základě zvoleného filtru a časového rámce.

Snímek obrazovky s zobrazením dotazů s nejvyšším využitím prostředků pro databázi

Zobrazení Dotazy s nejvyšším využitím prostředků poskytuje první indikaci ad hoc povahy úlohy při identifikaci a vylepšování ad hoc úloh. Například na následujícím obrázku jsou metriky Počet spuštění a Celková statistika vybrány k odhalení, že přibližně 90 % dotazů s nejvyšším využitím prostředků se spouští pouze jednou.

Snímek obrazovky s dotazy s nejvyšším využitím prostředků filtrovanými podle počtu spuštění

Dotazy s vynucenými plány

Zobrazení Dotazy s vynucenými plány poskytuje rychlý přehled o dotazech, které mají plány vynucených dotazů. Toto zobrazení se stane relevantním v případě, že vynucený plán přestane fungovat podle očekávání a je potřeba ho znovu vyhodnotit. Toto zobrazení poskytuje možnost zkontrolovat všechny trvalé odhadované plány provádění vybraného dotazu, které snadno určují, jestli je teď pro výkon vhodnější jiný plán. Pokud ano, tlačítka panelu nástrojů jsou k dispozici pro zrušení vynucovat plán podle potřeby.

Snímek obrazovky s dotazy s vynucenými plány

Dotazy s vysokou variantou

Výkon dotazů se může mezi spuštěními lišit. Zobrazení Dotazy s vysokou variantou obsahuje analýzu dotazů, které mají nejvyšší odchylku nebo směrodatnou odchylku pro vybranou metriku. Rozhraní je konzistentní s většinou zobrazení úložiště dotazů, které umožňuje kontrolu podrobností dotazu, vyhodnocení plánu spuštění a volitelně vynucení konkrétního plánu. Pomocí tohoto zobrazení můžete ladit nepředvídatelné dotazy na konzistentnější vzor výkonu.

Snímek obrazovky s dotazy s vysokou variantou

Statistika čekání dotazu

Zobrazení Statistika čekání dotazu analyzuje nejaktivnější kategorie čekání databáze a vykreslí graf. Tento graf je interaktivní; Výběrem kategorie čekání přejdete k podrobnostem dotazů, které přispívají ke statistikě doby čekání.

Snímek obrazovky s dotazy s vysokým zobrazením variant

Rozhraní zobrazení podrobností je také konzistentní s většinou zobrazení úložiště dotazů umožňujících kontrolu podrobností dotazu, vyhodnocení plánu provádění a volitelně vynucení konkrétního plánu. Toto zobrazení pomáhá identifikovat dotazy, které ovlivňují uživatelské prostředí napříč aplikacemi.

Sledovací dotaz

Zobrazení sledovacího dotazu umožňuje analyzovat konkrétní dotaz na základě zadané hodnoty ID dotazu. Po spuštění zobrazení poskytuje kompletní historii provádění dotazu. Značka zaškrtnutí při provádění označuje, že byl použit vynucený plán. Toto zobrazení může poskytnout přehled o dotazech, jako jsou dotazy s vynucenými plány, abyste ověřili, že výkon dotazů zůstává stabilní.

Snímek obrazovky s filtrováním zobrazení sledovacího dotazu podle konkrétního ID dotazu

Použití úložiště dotazů k vyhledání čekání dotazů

Když se výkon systému začne snižovat, je vhodné poradit se statistikou čekání na dotazy, aby se potenciálně identifikovala příčina. Kromě identifikacedotazůch

Úložiště dotazů SQL poskytuje zobrazení Statistika čekání dotazu, které poskytuje přehled o hlavních kategoriích čekání databáze. V současné době existuje 23 kategorií čekání.

Pruhový graf zobrazuje nejvýraznější kategorie čekání databáze při otevření zobrazení Statistika čekání dotazu. Kromě toho filtr umístěný na panelu nástrojů podokna kategorií čekání umožňuje vypočítat statistiky čekání na základě celkové doby čekání (výchozí), průměrné doby čekání, minimální doby čekání, maximální doby čekání nebo standardní doby čekání.

Snímek obrazovky zobrazení Statistika čekání dotazu zobrazující nejvýraznější kategorie jako pruhový graf

Výběrem kategorie čekání přejdete k podrobnostem dotazů, které přispívají k této kategorii čekání. Z tohoto zobrazení máte možnost prozkoumat jednotlivé dotazy, které mají největší dopad. K trvalým odhadovaným plánům provádění, které se zobrazí v podokně souhrnu plánu, můžete získat přístup výběrem dotazu v podokně dotazu. Výběrem plánu dotazu v podokně Souhrn plánu se v dolním podokně zobrazí grafický plán dotazu. Z tohoto zobrazení máte možnost vynutit nebo zrušit vynucení plánu dotazu, aby se zlepšil výkon dotazu.

Snímek obrazovky se zobrazením Statistika čekání dotazu zobrazující nejvýraznější dotazy pro kategorii čekání