Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL-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:
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:
När en fråga kompileras för första gången skickas frågetext och den första planen till Query Store.
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.
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.
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:
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.
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.
Se även
Övervakning av prestanda med hjälp av Query Store
Bästa praxis med Query Store
katalogvyer för Query Store (Transact-SQL)