Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Consulta de E/S TOP de Desempenho do SQL Server -2


Oi,

Se você recebeu uma reclamação de lentidão do cliente, você precisa monitorar a instância do SQL Server e o banco de dados cujo sql está consumindo muitos recursos.







O SQL Server DBA deve monitorar o banco de dados sempre e, se houver muitos sqls executando muito tempo de execução ou consumindo muitos recursos de E/S, isso deve ser relatado ao desenvolvedor e ao desenvolvedor e o dba deve examinar esses sqls.



Você pode encontrar as 50 principais consultas de E/S no banco de dados do SQL Server com a seguinte 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;