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.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow