TOTAL_WORKER_TIME = in mocrosecond https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-exec-query-stats-transact-sql?view=sql-server-ver16
-- Query 1 : Top 10 total CPU consuming queries >> sdh dicoba
-- Query 2 : Top 10 average CPU consuming queries >> sdh dicoba
-- Query 3 : Top 10 I/O intensive queries >> sdh dicoba
-- Query 1 : Top 10 total CPU consuming queries >> sdh dicoba
SELECT TOP 10
@@SERVERNAME as ServerName,
@@servicename as ServiceName,
DB_NAME(qp.dbid) AS database_name,
QT.OBJECTID AS OBJECT_ID,
object_name(QT.OBJECTID) as ObjectName,
QS.TOTAL_WORKER_TIME AS CPU_TIME,
QT.TEXT AS STATEMENT_TEXT,
QP.QUERY_PLAN
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
-- where
not DB_NAME(qp.dbid) = 'msdb' and not DB_NAME(qp.dbid) = 'master' and not
DB_NAME(qp.dbid) = 'model' and not DB_NAME(qp.dbid) = 'tempdb'
--
where OBJECT_ID is not = 'null'
-- where DB_NAME(qp.dbid) =
'teguhth' and QT.OBJECTID is not null
-- where QT.TEXT ='select * from pembelian'
where QT.OBJECTID is not null
ORDER BY
TOTAL_WORKER_TIME DESC
-- Query 2 : Top 10 average CPU consuming queries >> sdh dicoba
SELECT TOP 10
@@SERVERNAME as ServerName,
@@servicename as ServiceName,
DB_NAME(qt.dbid) AS database_name,
QT.OBJECTID AS OBJECT_ID,
object_name(QT.OBJECTID) as ObjectName,
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
-- where
not DB_NAME(qt.dbid) = 'msdb' and not DB_NAME(qt.dbid) = 'master' and not --
DB_NAME(qt.dbid) = 'model' and not DB_NAME(qt.dbid) = 'tempdb'
-- where
DB_NAME(qt.dbid) = 'teguhth'
-- where
DB_NAME(qt.dbid) = 'teguhth' and QT.OBJECTID is not null
-- where QT.TEXT ='select * from pembelian'
-- where QT.OBJECTID is not null
where QT.OBJECTID is not null and object_name(QT.OBJECTID) is not null and DB_NAME(qt.dbid) is not null
ORDER BY [AVG CPU TIME] DESC ;
-- ORDER BY QS.TOTAL_WORKER_TIME DESC ;
-- Query 3 : Top 10 I/O intensive queries >> sdh dicoba
SELECT TOP 10
@@SERVERNAME as ServerName,
@@servicename as ServiceName,
DB_NAME(QT.DBID) AS DBNAME,
QT.OBJECTID AS OBJECT_ID,
object_name(QT.OBJECTID) as ObjectName,
TOTAL_LOGICAL_READS,
TOTAL_LOGICAL_WRITES,
EXECUTION_COUNT,
TOTAL_LOGICAL_READS+TOTAL_LOGICAL_WRITES AS [IO_TOTAL],
QT.TEXT AS QUERY_TEXT
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
-- and QT.TEXT ='select *
from pembelian'
-- and
QT.OBJECTID is not null and DB_NAME(qt.dbid) = 'teguhth' -- >> for lab
-- and
DB_NAME(qt.dbid) is not null
-- and
DB_NAME(qt.dbid) = 'msdb'-- and not DB_NAME(qt.dbid) = 'msdb' and not
DB_NAME(qt.dbid) = 'master' and not DB_NAME(qt.dbid) = 'model' and not
DB_NAME(qt.dbid) = 'tempdb'
-- where
DB_NAME(qt.dbid) = 'teguhth' and QT.OBJECTID is not null
--
where QT.OBJECTID is not null
ORDER BY [IO_TOTAL] DESC
-- Query 4 : Execution count of each query >> sdh dicoba
SELECT top 10
@@SERVERNAME as ServerName,
@@servicename as ServiceName,
QT.DBID,
DBNAME= DB_NAME (QT.DBID),
QT.OBJECTID,
object_name(QT.OBJECTID) as ObjectName,
QS.EXECUTION_COUNT,
QT.TEXT AS QUERY_TEXT,
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
where QT.OBJECTID is not null
-- where QT.TEXT ='select * from pembelian'
--
where DB_NAME(qt.dbid) is not null
-- where
DB_NAME(qt.dbid) = 'teguhth' and QT.OBJECTID is not null
--
where QT.OBJECTID is not null
--
where DB_NAME(qt.dbid) = 'msdb'
-- and
not DB_NAME(qt.dbid) = 'msdb' and not DB_NAME(qt.dbid) = 'master' and not
DB_NAME(qt.dbid) = 'model' and not DB_NAME(qt.dbid) = 'tempdb'
ORDER BY QS.EXECUTION_COUNT DESC
No comments:
Post a Comment