Microsoft SQL Server
Negozio di query
Ricerca…
Abilita l'archivio query sul database
L'archivio query può essere abilitato sul database utilizzando il seguente comando:
ALTER DATABASE tpch SET QUERY_STORE = ON
SQL Server / Database SQL di Azure raccoglierà informazioni sulle query eseguite e fornirà informazioni nelle viste 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_options
- sys.query_context_settings
Ottieni statistiche di esecuzione per query / piani SQL
La seguente query restituirà informazioni su qeries, i loro piani e le statistiche medie riguardanti la loro durata, il tempo della CPU, le letture fisiche e logiche.
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
Rimuovi i dati dall'archivio query
Se si desidera rimuovere alcune query o piani di query dall'archivio query, è possibile utilizzare i seguenti comandi:
EXEC sp_query_store_remove_query 4;
EXEC sp_query_store_remove_plan 3;
I parametri per queste stored procedure sono l'ID della query / piano recuperato dalle visualizzazioni di sistema.
Puoi anche rimuovere le statistiche di esecuzione per un piano particolare senza rimuovere il piano dallo store:
EXEC sp_query_store_reset_exec_stats 3;
Parametro fornito a questo ID piano di procedura.
Forzare il piano per la query
SQL Query Optimizer sceglierà il piano possibile baes che può trovare per alcune query. Se è possibile trovare alcuni piani che funzionano in modo ottimale per alcune query, è possibile forzare QO a utilizzare sempre tale piano utilizzando la seguente stored procedure:
EXEC sp_query_store_unforce_plan @query_id, @plan_id
Da questo punto, QO utilizzerà sempre il piano fornito per la query.
Se si desidera rimuovere questa associazione, è possibile utilizzare la seguente stored procedure:
EXEC sp_query_store_force_plan @query_id, @plan_id
Da questo punto, QO tenterà nuovamente di trovare il piano migliore.