Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Query CPU TOP prestazioni SQL Server -2

Ciao,

Se hai ricevuto un reclamo di lentezza dal cliente, devi monitorare l'istanza di SQL Server e il database che sql sta consumando molte risorse.

SQL Server DBA dovrebbe monitorare il database ogni volta e se ci sono molti sql che eseguono lunghi tempi di esecuzione o consumano molte risorse della CPU, allora dovrebbe essere segnalato allo sviluppatore e allo sviluppatore e dba dovrebbe esaminare questi sql.

Puoi trovare le query TOP CPU nel database di SQL Server con la seguente query.

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;