sql >> Base de Datos >  >> RDS >> Sqlserver

Rendimiento de SQL Server TOP IO Consulta -2

Hola,

Si recibió una queja de lentitud del cliente, debe monitorear la instancia de SQL Server y la base de datos cuyo sql consume muchos recursos.

SQL Server DBA debe monitorear la base de datos cada vez y si hay muchos sqls que ejecutan mucho tiempo de ejecución o consumen muchos recursos de IO, entonces se debe informar al desarrollador y al desarrollador y el dba debe examinar estos sqls.

Puede encontrar las consultas TOP 50 IO en la base de datos de SQL Server con la siguiente consulta.

select 
    q.[text],
SUBSTRING(q.text, (highest_cpu_queries.statement_start_offset/2)+1, 
        ((CASE highest_cpu_queries.statement_end_offset
          WHEN -1 THEN DATALENGTH(q.text)
         ELSE highest_cpu_queries.statement_end_offset
         END - highest_cpu_queries.statement_start_offset)/2) + 1) AS statement_text,    
    
    highest_cpu_queries.total_worker_time,
    highest_cpu_queries.total_logical_reads,
	highest_cpu_queries.last_execution_time,
    highest_cpu_queries.execution_count,
    q.dbid,
    q.objectid,
    q.number,
    q.encrypted,
     highest_cpu_queries.plan_handle
from 
    (select top 50 
          qs.last_execution_time,
          qs.execution_count,
        qs.plan_handle, 
        qs.total_worker_time,
        qs.statement_start_offset,
        qs.statement_end_offset,
        qs.total_logical_reads
    from 
        sys.dm_exec_query_stats qs
    order by qs.total_worker_time desc) as highest_cpu_queries
    cross apply sys.dm_exec_sql_text(plan_handle) as q
order by highest_cpu_queries.total_logical_reads desc;