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

SQL Server-Leistung TOP CPU-Abfrage -2

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
    ObjectName          = OBJECT_SCHEMA_NAME(qt.objectid,dbid) + '.' + OBJECT_NAME(qt.objectid, qt.dbid)
    ,TextData           = qt.text
    ,DiskReads          = qs.total_physical_reads   -- The worst reads, disk reads
    ,MemoryReads        = qs.total_logical_reads    --Logical Reads are memory reads
    ,Executions         = qs.execution_count
    ,TotalCPUTime       = qs.total_worker_time
    ,AverageCPUTime     = qs.total_worker_time/qs.execution_count
    ,DiskWaitAndCPUTime = qs.total_elapsed_time
    ,MemoryWrites       = qs.max_logical_writes
    ,DateCached         = qs.creation_time
    ,DatabaseName       = DB_Name(qt.dbid)
    ,LastExecutionTime  = qs.last_execution_time
 FROM sys.dm_exec_query_stats AS qs
 CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt
 ORDER BY qs.total_worker_time DESC;