Microsoft SQL Server
Sklep z zapytaniami
Szukaj…
Włącz magazyn zapytań w bazie danych
Magazyn zapytań można włączyć w bazie danych za pomocą następującego polecenia:
ALTER DATABASE tpch SET QUERY_STORE = ON
Baza danych SQL Server / Azure SQL gromadzi informacje o wykonanych zapytaniach i udostępnia informacje w widokach sys.query_store:
- 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_oreions
- sys.query_context_settings
Uzyskaj statystyki wykonania dla zapytań / planów SQL
Poniższe zapytanie zwróci informacje na temat zapytań, ich planów i średnich statystyk dotyczących czasu trwania, czasu procesora, odczytów fizycznych i logicznych.
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
Usuń dane z magazynu zapytań
Jeśli chcesz usunąć jakieś zapytanie lub plan zapytań ze sklepu zapytań, możesz użyć następujących poleceń:
EXEC sp_query_store_remove_query 4;
EXEC sp_query_store_remove_plan 3;
Parametry tych procedur przechowywanych to identyfikator zapytania / planu pobrany z widoków systemu.
Możesz także po prostu usunąć statystyki wykonania dla konkretnego planu bez usuwania planu ze sklepu:
EXEC sp_query_store_reset_exec_stats 3;
Parametr podany dla tego planu procedury id.
Wymuszanie planu zapytania
Optymalizator zapytań SQL wybierze możliwy plan, który może znaleźć dla jakiegoś zapytania. Jeśli znajdziesz jakiś plan, który działa optymalnie dla niektórych zapytań, możesz zmusić QO do korzystania z tego planu przy użyciu następującej procedury składowanej:
EXEC sp_query_store_unforce_plan @query_id, @plan_id
Od tego momentu QO zawsze będzie korzystać z planu przewidzianego dla zapytania.
Jeśli chcesz usunąć to powiązanie, możesz użyć następującej procedury składowanej:
EXEC sp_query_store_force_plan @query_id, @plan_id
Od tego momentu QO ponownie spróbuje znaleźć najlepszy plan.