Find top 10 CPU queries on SQL Server

Configurare noua (How To)

Situatie

Mai jos este o procedura ce returneaza top 10 query-uri ce solicita cel mai mult procesorule de pe server. Pentru aceste query-uri sunt returnate informatii precum: nume, codul query-ului, Total si Average CPU Time, baza de date pe care este rulat codul, etc.

Solutie

create procedure Top10CpuQueries

as

SELECT TOP 10
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;

Tip solutie

Permanent
Etichetare:

Voteaza

(6 din 15 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?