Microsoft SQL Server
Query Store
Zoeken…
Vraagarchief in database inschakelen
Query store kan worden ingeschakeld in de database met behulp van de volgende opdracht:
ALTER DATABASE tpch SET QUERY_STORE = ON
SQL Server / Azure SQL Database verzamelt informatie over uitgevoerde query's en geeft informatie in sys.query_store-weergaven:
- sys.query_store_query
- sys.query_store_query_text
- sys.query_store_plan
- sys.query_store_runtime_stats
- sys.query_store_runtime_stats_interval
- sys.database_query_store_options
- sys.query_context_settings
Ontvang uitvoeringsstatistieken voor SQL-vragen / plannen
De volgende query retourneert informatie over vragen, hun plannen en gemiddelde statistieken met betrekking tot hun duur, CPU-tijd, fysieke en logische io-reads.
SELECT Txt.query_text_id, Txt.query_sql_text, Pl.plan_id,
avg_duration, avg_cpu_time,
avg_physical_io_reads, avg_logical_io_reads
FROM sys.query_store_plan AS Pl
JOIN sys.query_store_query AS Qry
ON Pl.query_id = Qry.query_id
JOIN sys.query_store_query_text AS Txt
ON Qry.query_text_id = Txt.query_text_id
JOIN sys.query_store_runtime_stats Stats
ON Pl.plan_id = Stats.plan_id
Gegevens verwijderen uit queryarchief
Als u een of meer query's of queryplannen uit de queryopslag wilt verwijderen, kunt u de volgende opdrachten gebruiken:
EXEC sp_query_store_remove_query 4;
EXEC sp_query_store_remove_plan 3;
Parameters voor deze opgeslagen procedures worden query / plan-ID opgehaald uit systeemweergaven.
U kunt ook gewoon uitvoeringsstatistieken voor een bepaald plan verwijderen zonder het plan uit de winkel te verwijderen:
EXEC sp_query_store_reset_exec_stats 3;
Parameter verstrekt aan dit procedureplan id.
Dwangplan voor zoekopdracht
SQL Query optimizer kiest het mogelijke basisplan dat hij voor een bepaalde zoekopdracht kan vinden. Als u een plan kunt vinden dat optimaal werkt voor een query, kunt u QO dwingen dat plan altijd te gebruiken met de volgende opgeslagen procedure:
EXEC sp_query_store_unforce_plan @query_id, @plan_id
Vanaf dit punt gebruikt QO altijd het plan dat voor de query is verstrekt.
Als u deze binding wilt verwijderen, kunt u de volgende opgeslagen procedure gebruiken:
EXEC sp_query_store_force_plan @query_id, @plan_id
Vanaf dit punt zal QO opnieuw proberen het beste plan te vinden.