Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server-Leistung TOP CPU-Abfrage -1

Hallo,

Wenn Sie von einem Kunden eine Beschwerde über Langsamkeit erhalten haben, müssen Sie die SQL Server-Instanz und die Datenbank überwachen, die eine Menge Ressourcen verbraucht.

SQL Server DBA sollte die Datenbank jedes Mal überwachen, und wenn es viele SQLs gibt, die eine lange Ausführungszeit haben oder viel CPU-Ressourcen verbrauchen, sollte dies dem Entwickler und dem Entwickler gemeldet werden, und der DBA sollte diese SQLs untersuchen.

Mit der folgenden Abfrage finden Sie TOP-CPU-Abfragen in der SQL Server-Datenbank.

select top 50
query_stats.query_hash,
SUM(query_stats.total_worker_time) / SUM(query_stats.execution_count) as avgCPU_USAGE,
min(query_stats.statement_text) as QUERY
from (
select qs.*,
SUBSTRING(st.text,(qs.statement_start_offset/2)+1,
((case statement_end_offset
when -1 then DATALENGTH(st.text)
else qs.statement_end_offset end
- qs.statement_start_offset)/2) +1) as statement_text
from sys.dm_exec_query_stats as qs
cross apply sys.dm_exec_sql_text(qs.sql_handle) as st 
) as query_stats
group by query_stats.query_hash
order by 2 desc

Das Abfrageergebnis wird wie im folgenden Screenshot aussehen