Sql Server en çok cpu yoran sorguları bulmak
Sql Server en çok cpu yoran sorguları bulmak sys.dm_exec_query_stats proseduru bize dinamik yönetim ve inceleme fırsatı verir.Sql serverda en çok cpu kullanan sorguları ve cache belleği yoran sorguları meydana çıkarmamamıza yardımcı olur.Bu hesaplamayı sorgu ifadesindeki sorguya göre satır satır hesaplanır.Satırların geçerliliği tamamen planın durumuna bağlı şekilde çalışır. Sys.dm_exec_query_stats, cache bellekde olan sorgulara ait detaylı bir performans istatistiğine erişmemizi sağlayabiliriz. Performans ve sunucu yükü analizi için önbelleğe alınan sorgu ayrıntılarını elde etmek için çok kullanışlıdır.
Sql Server en çok cpu yoran sorguları bulmak
Sorgu 1 : En çok toplam CPU tüketen top 10 sorgu
SELECT TOP 10
QT.TEXT AS STATEMENT_TEXT,
QP.QUERY_PLAN,
QS.TOTAL_WORKER_TIME AS CPU_TIME
FROM SYS.DM_EXEC_QUERY_STATS QS
CROSS APPLY SYS.DM_EXEC_SQL_TEXT (QS.SQL_HANDLE) AS QT
CROSS APPLY SYS.DM_EXEC_QUERY_PLAN (QS.PLAN_HANDLE) AS QP
ORDER BY TOTAL_WORKER_TIME DESC
Sql Server en çok cpu yoran sorguları bulmak 2
Sorgu 2 : En çok Cpu tüketen top 10 ortalama sorgu
SELECT TOP 10
TOTAL_WORKER_TIME ,
EXECUTION_COUNT ,
TOTAL_WORKER_TIME / EXECUTION_COUNT AS [AVG CPU TIME] ,
QT.TEXT AS QUERYTEXT
FROM SYS.DM_EXEC_QUERY_STATS QS
CROSS APPLY SYS.DM_EXEC_SQL_TEXT(QS.PLAN_HANDLE) AS QT
ORDER BY QS.TOTAL_WORKER_TIME DESC ;
Sql Server en çok cpu yoran sorguları bulmak 3
Sorgu 3 : Diske yazma okuma işlemi yapan top 10 sorgu
SELECT TOP 10
TOTAL_LOGICAL_READS,
TOTAL_LOGICAL_WRITES,
EXECUTION_COUNT,
TOTAL_LOGICAL_READS+TOTAL_LOGICAL_WRITES AS [IO_TOTAL],
QT.TEXT AS QUERY_TEXT,
DB_NAME(QT.DBID) AS DATABASE_NAME,
QT.OBJECTID AS OBJECT_ID
FROM SYS.DM_EXEC_QUERY_STATS QS
CROSS APPLY SYS.DM_EXEC_SQL_TEXT(SQL_HANDLE) QT
WHERE TOTAL_LOGICAL_READS+TOTAL_LOGICAL_WRITES > 0
ORDER BY [IO_TOTAL] DESC
Sorgu 4 : Sorgu çalıştırma sayısına göre sorgular
SELECT QS.EXECUTION_COUNT,
QT.TEXT AS QUERY_TEXT,
QT.DBID,
DBNAME= DB_NAME (QT.DBID),
QT.OBJECTID,
QS.TOTAL_ROWS,
QS.LAST_ROWS,
QS.MIN_ROWS,
QS.MAX_ROWS
FROM SYS.DM_EXEC_QUERY_STATS AS QS
CROSS APPLY SYS.DM_EXEC_SQL_TEXT(QS.SQL_HANDLE) AS QT
ORDER BY QS.EXECUTION_COUNT DESC
Sql Server en çok cpu yoran sorguları bulmak