Sdílet prostřednictvím


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

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analyticssql 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:

Zobrazení procesu úložiště dotazů
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:

  1. Když se dotaz zkompiluje poprvé, text dotazu a počáteční plán se odešlou do úložiště dotazů.

  2. 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í.

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

  4. 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:

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

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.

Plán procesu úložiště dotazů

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

Informace o plánu procesů Query Store

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)