Anteckning
Å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 Förhandsversion av 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:
View descriptions
| 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 inställningar som påverkar planen under vilka frågor körs. Samma frågetext som körs med olika inställningar som påverkar planen skapar en separat frågepost i Query Store eftersom context_settings_id den är en del av frågenyckeln. |
| sys.query_store_query | Frågeposter 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. Lagrad plan motsvarar en som du får med hjälp SET SHOWPLAN_XML ONav . |
| 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.
Query processing
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ågan och behåller de tidigare tillsammans med deras körningsstatistik.
Vid frågekörningen skickas körningsstatistik 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 Körningsstatistik, sparas i minnet under en tidsperiod som definierats med DATA_FLUSH_INTERVAL_SECONDS alternativet 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 övergår det till skrivskyddat 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 är minnesintern och på disk-data enhetliga transparent.
Om en session avslutas eller klientprogrammet startas om eller kraschar registreras inte frågestatistik.
See also
Övervakning av prestanda med hjälp av Query Store
Bästa praxis med Query Store
katalogvyer för Query Store (Transact-SQL)