11 Nisan 2017 Salı

Sql Server en çok cpu yoran sorguları bulmak

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

Hiç yorum yok:

Yorum Gönder