Så samlar Query Store in data

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL-databas i Microsoft Fabric

SQL Server Query Store fungerar ungefär som en inspelare för flygdata och samlar ständigt in kompilerings- och körningsinformation relaterad till frågor och planer. Frågerelaterade data sparas i de interna tabellerna och presenteras för användarna via en uppsättning vyer.

Views

Följande diagram visar Query Store-vyer och deras logiska relationer, med kompileringstidsinformation som presenteras som blå entiteter:

Vyer för Query Store-processen
Visa beskrivningar

View Description
sys.query_store_query_text Presenterar unika frågetexter som körs mot databasen. Kommentarer och blanksteg före och efter frågetexten ignoreras. Kommentarer och blanksteg i text ignoreras inte. Varje instruktion i batchen genererar en separat frågetextpost.
sys.query_context_settings Visar unika kombinationer av planeffekterande inställningar under vilka frågor utförs. Samma frågetext som körs med olika inställningar som påverkar exekveringsplanen skapar en separat frågepost i Query Store eftersom context_settings_id är en del av frågenyckeln.
sys.query_store_query Frågeuppgifter som spåras och tvingas separat i Query Store. En enskild frågetext kan generera flera frågeposter om den körs under olika kontextinställningar eller om den körs utanför eller i olika Transact-SQL moduler, till exempel lagrade procedurer och utlösare.
sys.query_store_plan Visar en uppskattad plan för frågan med tidsstatistiken för kompilering. Lagrade planer motsvarar en som du får genom att använda SET SHOWPLAN_XML ON.
sys.query_store_runtime_stats_interval Query Store delar in tid i automatiskt genererade tidsfönster (intervall) och lagrar aggregerad statistik för det intervallet för varje utförd plan. Intervallets storlek styrs av konfigurationsalternativet Statistics Collection Interval (i Management Studio) eller INTERVAL_LENGTH_MINUTES med hjälp av ALTER DATABASE SET Options (Transact-SQL).
sys.query_store_runtime_stats Sammanställd körningsstatistik för utförda planer. Alla insamlade mått uttrycks i form av fyra statistikfunktioner: Genomsnitt, Minimum, Maximum och Standardavvikelse.

Mer information om Query Store-vyer finns i avsnittet "Relaterade vyer, funktioner och procedurer" i Övervaka prestanda med hjälp av Query Store.

Frågebearbetning

Query Store interagerar med frågebearbetningspipelinen på följande viktiga punkter:

  1. När en fråga kompileras för första gången skickas frågetext och den första planen till Query Store.

  2. När en fråga kompileras om uppdateras planen i Query Store. Om en ny plan skapas lägger Query Store till den nya planposten för fråge och behåller de tidigare tillsammans med deras exekveringsstatistik.

  3. När frågekörningen utförs skickas utförandestatistik till Query Store. Query Store håller aggregerad statistik korrekt för varje plan som kördes inom det aktiva intervallet.

  4. Under kompilering och sökning efter omkompileringsfaser avgör SQL Server om det finns en plan i Query Store som ska tillämpas för den fråga som körs. Om det finns en tvingad plan och planen i procedurens cache skiljer sig från den framtvingade planen, kompileras frågan om. Detta är i praktiken på samma sätt som om PLAN HINT tillämpades på frågan. Den här processen sker transparent för användarprogrammet.

Följande diagram visar integrationspunkterna som beskrivs i föregående steg:

Query Store-process

Remarks

För att minimera I/O-omkostnaderna samlas nya data in i minnet. Skrivåtgärder placeras i kö och töms till disk efteråt. Fråge- och planinformation, som visas som Plan Store i följande diagram, töms med minimal svarstid. Körningsstatistiken, som visas som Runtime Stats, sparas i minnet under en tidsperiod som definieras med alternativet DATA_FLUSH_INTERVAL_SECONDS för instruktionen SET QUERY_STORE. Du kan använda dialogrutan Management Studio Query Store för att ange ett värde för dataspolningsintervall (minuter), som konverteras internt till sekunder.

Query Store processplan

Om systemet kraschar eller en avstängning inträffar när spårningsflaggan 7745 används kan Query Store förlora körningsdata som har samlats in men ännu inte sparats, upp till ett tidsfönster som definierats med DATA_FLUSH_INTERVAL_SECONDS. Vi rekommenderar standardvärdet 900 sekunder (15 minuter) som en balans mellan frågeinsamlingsprestanda och datatillgänglighet.

Important

Maxstorleksgränsen (MB) tillämpas inte strikt. Lagringsstorleken kontrolleras endast när Query Store skriver data till disk. Det här intervallet anges av dataspolningsintervallvärdet . Om Query Store har överskridit den maximala storleksgränsen mellan kontroller av lagringsstorlek växlar det till läs-only läge. Om storleksbaserat rensningsläge är aktiverat utlöses även rensningsmekanismen för att framtvinga den maximala storleksgränsen.

Note

Om systemet är under minnesbelastning kan körningsstatistik rensas till disken tidigare än vad som definierats med DATA_FLUSH_INTERVAL_SECONDS.

Under läsningen av Query Store-data förenas data i minnet och på disken som enhetliga och transparanta.

Om en session avslutas eller klientprogrammet startas om eller kraschar registreras inte frågestatistik.

Processplansinformation för Query Store

Se även

Övervakning av prestanda med hjälp av Query Store
Bästa praxis med Query Store
katalogvyer för Query Store (Transact-SQL)