Microsoft SQL Server
Tienda de consultas
Buscar..
Habilitar el almacén de consultas en la base de datos
El almacén de consultas se puede habilitar en la base de datos mediante el siguiente comando:
ALTER DATABASE tpch SET QUERY_STORE = ON
SQL Server / Azure SQL Database recopilará información sobre las consultas ejecutadas y proporcionará información en las vistas de 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
Obtenga estadísticas de ejecución para consultas / planes SQL
La siguiente consulta devolverá información sobre qeries, sus planes y estadísticas promedio con respecto a su duración, tiempo de CPU, lecturas físicas y lógicas de io.
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
Eliminar datos del almacén de consultas
Si desea eliminar alguna consulta o plan de consulta del almacén de consultas, puede usar los siguientes comandos:
EXEC sp_query_store_remove_query 4;
EXEC sp_query_store_remove_plan 3;
Los parámetros para estos procedimientos almacenados son el ID de consulta / plan recuperado de las vistas del sistema.
También puede simplemente eliminar las estadísticas de ejecución para un plan particular sin eliminar el plan de la tienda:
EXEC sp_query_store_reset_exec_stats 3;
Parámetro proporcionado a este ID de plan de procedimiento.
Forzar plan de consulta
El optimizador de consultas SQL seleccionará los posibles planes que puede encontrar para alguna consulta. Si puede encontrar algún plan que funcione de manera óptima para alguna consulta, puede forzar a QO a usar ese plan siempre utilizando el siguiente procedimiento almacenado:
EXEC sp_query_store_unforce_plan @query_id, @plan_id
Desde este punto, QO siempre usará el plan provisto para la consulta.
Si desea eliminar este enlace, puede utilizar el siguiente procedimiento almacenado:
EXEC sp_query_store_force_plan @query_id, @plan_id
A partir de este punto, QO intentará nuevamente encontrar el mejor plan.