Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
sql database v Microsoft Fabric
Úložiště dotazů SQL Serveru funguje podobně jako zapisovač letových dat, neustále shromažďuje informace o kompilaci a běhovém prostředí vztahující se k dotazům a plánům. Data související s dotazy se uchovávají v interních tabulkách a zobrazují se uživatelům prostřednictvím sady zobrazení.
Views
Následující diagram znázorňuje zobrazení úložiště dotazů a jejich logické vztahy s informacemi o čase kompilace prezentovanými jako modré entity:
Zobrazit popisy
| View | Description |
|---|---|
| sys.query_store_query_text | Zobrazí jedinečné texty dotazů spuštěné v databázi. Komentáře a mezery před a za textem dotazu se ignorují. Komentáře a mezery uvnitř textu se ignorují. Každý příkaz v dávce vygeneruje samostatnou položku textu dotazu. |
| sys.query_context_settings | Představuje jedinečné kombinace nastavení, které ovlivňují plán, a podmínek, za kterých se dotazy provádějí. Stejný text dotazu spuštěný s různými nastaveními ovlivňujícími plán vytvoří samostatnou položku dotazu v úložišti dotazů, protože context_settings_id je součástí klíče dotazu. |
| sys.query_store_query | Položky dotazu, které jsou samostatně sledovány a vynuceny v Query Store. Jeden text dotazu může vytvořit více položek dotazu, pokud se provádí v různých kontextových nastaveních nebo pokud se provádí mimo jiné než v různých modulech Transact-SQL, jako jsou uložené procedury a triggery. |
| sys.query_store_plan | Představuje odhadovaný plán dotazu se statistikou doby kompilace. Uložený plán je ekvivalentní plánu, který získáte pomocí SET SHOWPLAN_XML ON. |
| sys.query_store_runtime_stats_interval | Úložiště dotazů rozděluje čas do automaticky vygenerovaných časových intervalů (intervalů) a ukládá agregované statistiky pro každý spuštěný plán. Velikost intervalu se řídí možností konfigurace Interval shromažďování statistik (v sadě Management Studio) nebo INTERVAL_LENGTH_MINUTES pomocí možností ALTER DATABASE SET (Transact-SQL). |
| sys.query_store_runtime_stats | Agregované statistiky modulu runtime pro spuštěné plány Všechny zachycené metriky jsou vyjádřeny ve formě čtyř statistických funkcí: Průměr, Minimum, Maximum a Směrodatná odchylka. |
Další informace o zobrazeních úložiště dotazů najdete v části Související zobrazení, funkce a procedury monitorování výkonu pomocí úložiště dotazů.
Zpracování dotazů
Úložiště dotazů komunikuje s kanálem zpracování dotazů v následujících klíčových bodech:
Když se dotaz zkompiluje poprvé, text dotazu a počáteční plán se odešlou do úložiště dotazů.
Když se dotaz znovu zkompiluje, plán se aktualizuje v úložišti dotazů. Pokud se vytvoří nový plán, úložiště dotazů přidá novou položku plánu pro dotaz a zachová předchozí plán společně se statistikami provádění.
Při spuštění dotazu se do úložiště dotazů odesílají statistiky modulu runtime. Úložiště dotazů uchovává agregované statistiky přesné pro každý plán, který byl proveden v aktuálně aktivním intervalu.
Během kompilace a kontroly rekompilačních fází SQL Server určí, jestli je v úložišti dotazů plán, který by se měl použít pro aktuálně spuštěný dotaz. Pokud existuje vynucený plán a plán v mezipaměti procedur se liší od vynuceného plánu, dotaz se znovu zkompiluje. To je v podstatě stejný způsob, jako kdyby se na tento dotaz použil TIP PLÁNU. Tento proces probíhá transparentně vůči uživatelské aplikaci.
Následující diagram znázorňuje body integrace popsané v předchozích krocích:
Remarks
Aby se minimalizovaly režijní náklady na vstupně-výstupní operace, zachytává se nová data v paměti. Operace zápisu se zařadí do fronty a poté se zapíší na disk. Dotazování a informace o plánu, které se zobrazují jako Úložiště plánů v následujícím diagramu, se vyprázdní s minimální latencí. Statistiky běhu, zobrazené jako runtime statistiky, se uchovávají v paměti po určitou dobu definovanou volbou DATA_FLUSH_INTERVAL_SECONDS příkazu SET QUERY_STORE. Pomocí dialogového okna Úložiště dotazů v sadě Management Studio můžete zadat hodnotu intervalu vyprázdnění dat (minuty), která se interně převede na sekundy.
Pokud dojde k chybovému ukončení systému nebo vypnutí při použití příznaku trasování 7745, úložiště dotazů může ztratit data modulu runtime, která byla shromážděna, ale ještě nebyla zachována, až do časového intervalu definovaného pomocí DATA_FLUSH_INTERVAL_SECONDS. Jako rovnováhu mezi výkonem dotazů a dostupností dat doporučujeme výchozí hodnotu 900 sekund (15 minut).
Important
Limit Max Size (MB) není přísně vyžadován. Velikost úložiště se kontroluje jenom v případech, kdy úložiště dotazů zapisuje data na disk. Tento interval je nastaven hodnotou intervalu vyprázdnění dat . Pokud úložiště dotazů porušilo maximální limit velikosti mezi kontrolami velikosti úložiště, přejde do režimu jen pro čtení. Pokud je povolený režim čištění na základě velikosti , aktivuje se také mechanismus čištění, který vynutí maximální limit velikosti.
Note
Pokud je systém pod zatížením paměti, statistiky modulu runtime lze vyprázdnit na disk dříve, než je definováno .DATA_FLUSH_INTERVAL_SECONDS
Při čtení dat úložiště dotazů jsou data v paměti a na disku transparentně sjednocená.
Pokud se relace ukončí nebo se klientská aplikace restartuje nebo dojde k chybovému ukončení, statistiky dotazů se nezaznamenají.
Viz také
Monitorování výkonu pomocí úložiště dotazů
Osvědčený postup s úložištěm dotazů
zobrazení katalogu úložiště dotazů (Transact-SQL)