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.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow