Guest User

Untitled

a guest
Jan 23rd, 2018
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.44 KB | None | 0 0
  1. WITH DB_CPU_Stats
  2. AS
  3. (
  4. SELECT DatabaseID, DB_Name(DatabaseID) AS [DatabaseName],
  5. SUM(total_worker_time) AS [CPU_Time_Ms]
  6. FROM sys.dm_exec_query_stats AS qs
  7. CROSS APPLY (
  8. SELECT CONVERT(int, value) AS [DatabaseID]
  9. FROM sys.dm_exec_plan_attributes(qs.plan_handle)
  10. WHERE attribute = N'dbid') AS F_DB
  11. GROUP BY DatabaseID
  12. )
  13. SELECT ROW_NUMBER() OVER(ORDER BY [CPU_Time_Ms] DESC) AS [row_num],
  14. DatabaseName,
  15. [CPU_Time_Ms],
  16. CAST([CPU_Time_Ms] * 1.0 / SUM([CPU_Time_Ms]) OVER() * 100.0 AS DECIMAL(5, 2)) AS [CPUPercent]
  17. FROM DB_CPU_Stats
  18. --WHERE DatabaseID > 4 -- system databases
  19. --AND DatabaseID <> 32767 -- ResourceDB
  20. ORDER BY row_num OPTION (RECOMPILE);
  21.  
  22. DECLARE @total INT
  23. SELECT @total=sum(cpu) FROM sys.sysprocesses sp (NOLOCK)
  24. join sys.sysdatabases sb (NOLOCK) ON sp.dbid = sb.dbid
  25.  
  26. SELECT sb.name 'database', @total 'system cpu', SUM(cpu) 'database cpu', CONVERT(DECIMAL(4,1), CONVERT(DECIMAL(17,2),SUM(cpu)) / CONVERT(DECIMAL(17,2),@total)*100) '%'
  27. FROM sys.sysprocesses sp (NOLOCK)
  28. JOIN sys.sysdatabases sb (NOLOCK) ON sp.dbid = sb.dbid
  29. --WHERE sp.status = 'runnable'
  30. GROUP BY sb.name
  31. ORDER BY CONVERT(DECIMAL(4,1), CONVERT(DECIMAL(17,2),SUM(cpu)) / CONVERT(DECIMAL(17,2),@total)*100) desc
  32.  
  33. ;WITH cte AS
  34. (
  35. SELECT stat.[sql_handle],
  36. stat.statement_start_offset,
  37. stat.statement_end_offset,
  38. COUNT(*) AS [NumExecutionPlans],
  39. SUM(stat.execution_count) AS [TotalExecutions],
  40. ((SUM(stat.total_logical_reads) * 1.0) / SUM(stat.execution_count)) AS [AvgLogicalReads],
  41. ((SUM(stat.total_worker_time) * 1.0) / SUM(stat.execution_count)) AS [AvgCPU]
  42. FROM sys.dm_exec_query_stats stat
  43. GROUP BY stat.[sql_handle], stat.statement_start_offset, stat.statement_end_offset
  44. )
  45. SELECT CONVERT(DECIMAL(15, 5), cte.AvgCPU) AS [AvgCPU],
  46. CONVERT(DECIMAL(15, 5), cte.AvgLogicalReads) AS [AvgLogicalReads],
  47. cte.NumExecutionPlans,
  48. cte.TotalExecutions,
  49. DB_NAME(txt.[dbid]) AS [DatabaseName],
  50. OBJECT_NAME(txt.objectid, txt.[dbid]) AS [ObjectName],
  51. SUBSTRING(txt.[text], (cte.statement_start_offset / 2) + 1,
  52. (
  53. (CASE cte.statement_end_offset
  54. WHEN -1 THEN DATALENGTH(txt.[text])
  55. ELSE cte.statement_end_offset
  56. END - cte.statement_start_offset) / 2
  57. ) + 1
  58. )
  59. FROM cte
  60. CROSS APPLY sys.dm_exec_sql_text(cte.[sql_handle]) txt
  61. ORDER BY cte.AvgCPU DESC;
  62.  
  63. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  64. GO
  65. WITH DB_CPU_Stats
  66. AS
  67. (
  68. SELECT DatabaseID, isnull(DB_Name(DatabaseID),case DatabaseID when 32767 then 'Internal ResourceDB' else CONVERT(varchar(255),DatabaseID)end) AS [DatabaseName],
  69. SUM(total_worker_time) AS [CPU_Time_Ms],
  70. SUM(total_logical_reads) AS [Logical_Reads],
  71. SUM(total_logical_writes) AS [Logical_Writes],
  72. SUM(total_logical_reads+total_logical_writes) AS [Logical_IO],
  73. SUM(total_physical_reads) AS [Physical_Reads],
  74. SUM(total_elapsed_time) AS [Duration_MicroSec],
  75. SUM(total_clr_time) AS [CLR_Time_MicroSec],
  76. SUM(total_rows) AS [Rows_Returned],
  77. SUM(execution_count) AS [Execution_Count],
  78. count(*) 'Plan_Count'
  79. FROM sys.dm_exec_query_stats AS qs
  80. CROSS APPLY (
  81. SELECT CONVERT(int, value) AS [DatabaseID]
  82. FROM sys.dm_exec_plan_attributes(qs.plan_handle)
  83. WHERE attribute = N'dbid') AS F_DB
  84. GROUP BY DatabaseID
  85. )
  86. SELECT ROW_NUMBER() OVER(ORDER BY [CPU_Time_Ms] DESC) AS [Rank_CPU],
  87. DatabaseName,
  88. [CPU_Time_Hr] = convert(decimal(15,2),([CPU_Time_Ms]/1000.0)/3600) ,
  89. CAST([CPU_Time_Ms] * 1.0 / SUM(case [CPU_Time_Ms] when 0 then 1 else [CPU_Time_Ms] end) OVER() * 100.0 AS DECIMAL(5, 2)) AS [CPU_Percent],
  90. [Duration_Hr] = convert(decimal(15,2),([Duration_MicroSec]/1000000.0)/3600) ,
  91. CAST([Duration_MicroSec] * 1.0 / SUM(case [Duration_MicroSec] when 0 then 1 else [Duration_MicroSec] end) OVER() * 100.0 AS DECIMAL(5, 2)) AS [Duration_Percent],
  92. [Logical_Reads],
  93. CAST([Logical_Reads] * 1.0 / SUM(case [Logical_Reads] when 0 then 1 else [Logical_Reads] end) OVER() * 100.0 AS DECIMAL(5, 2)) AS [Logical_Reads_Percent],
  94. [Rows_Returned],
  95. CAST([Rows_Returned] * 1.0 / SUM(case [Rows_Returned] when 0 then 1 else [Rows_Returned] end) OVER() * 100.0 AS DECIMAL(5, 2)) AS [Rows_Returned_Percent],
  96. [Reads_Per_Row_Returned] = [Logical_Reads]/(case [Rows_Returned] when 0 then 1 else [Rows_Returned] end),
  97. [Execution_Count],
  98. CAST([Execution_Count] * 1.0 / SUM(case [Execution_Count] when 0 then 1 else [Execution_Count] end) OVER() * 100.0 AS DECIMAL(5, 2)) AS [Execution_Count_Percent],
  99. [Physical_Reads],
  100. CAST([Physical_Reads] * 1.0 / SUM(case [Physical_Reads] when 0 then 1 else [Physical_Reads] end ) OVER() * 100.0 AS DECIMAL(5, 2)) AS [Physcal_Reads_Percent],
  101. [Logical_Writes],
  102. CAST([Logical_Writes] * 1.0 / SUM(case [Logical_Writes] when 0 then 1 else [Logical_Writes] end) OVER() * 100.0 AS DECIMAL(5, 2)) AS [Logical_Writes_Percent],
  103. [Logical_IO],
  104. CAST([Logical_IO] * 1.0 / SUM(case [Logical_IO] when 0 then 1 else [Logical_IO] end) OVER() * 100.0 AS DECIMAL(5, 2)) AS [Logical_IO_Percent],
  105. [CLR_Time_MicroSec],
  106. CAST([CLR_Time_MicroSec] * 1.0 / SUM(case [CLR_Time_MicroSec] when 0 then 1 else [CLR_Time_MicroSec] end ) OVER() * 100.0 AS DECIMAL(5, 2)) AS [CLR_Time_Percent],
  107. [CPU_Time_Ms],[CPU_Time_Ms]/1000 [CPU_Time_Sec],
  108. [Duration_MicroSec],[Duration_MicroSec]/1000000 [Duration_Sec]
  109. FROM DB_CPU_Stats
  110. WHERE DatabaseID > 4 -- system databases
  111. AND DatabaseID <> 32767 -- ResourceDB
  112. ORDER BY [Rank_CPU] OPTION (RECOMPILE);
  113.  
  114. WITH DB_CPU_Stats
  115. AS
  116. (
  117. SELECT DatabaseID, isnull(DB_Name(DatabaseID),case DatabaseID when 32767 then 'Internal ResourceDB' else CONVERT(varchar(255),DatabaseID)end) AS [DatabaseName],
  118. SUM(total_worker_time) AS [CPU Time Ms],
  119. SUM(total_logical_reads) AS [Logical Reads],
  120. SUM(total_logical_writes) AS [Logical Writes],
  121. SUM(total_logical_reads+total_logical_writes) AS [Logical IO],
  122. SUM(total_physical_reads) AS [Physical Reads],
  123. SUM(total_elapsed_time) AS [Duration MicroSec],
  124. SUM(total_clr_time) AS [CLR Time MicroSec],
  125. SUM(total_rows) AS [Rows Returned],
  126. SUM(execution_count) AS [Execution Count],
  127. count(*) 'Plan Count'
  128.  
  129. FROM sys.dm_exec_query_stats AS qs
  130. CROSS APPLY (
  131. SELECT CONVERT(int, value) AS [DatabaseID]
  132. FROM sys.dm_exec_plan_attributes(qs.plan_handle)
  133. WHERE attribute = N'dbid') AS F_DB
  134. GROUP BY DatabaseID
  135. )
  136. SELECT ROW_NUMBER() OVER(ORDER BY [CPU Time Ms] DESC) AS [Rank CPU],
  137. DatabaseName,
  138. [CPU Time Hr] = convert(decimal(15,2),([CPU Time Ms]/1000.0)/3600) ,
  139. CAST([CPU Time Ms] * 1.0 / SUM([CPU Time Ms]) OVER() * 100.0 AS DECIMAL(5, 2)) AS [CPU Percent],
  140. [Duration Hr] = convert(decimal(15,2),([Duration MicroSec]/1000000.0)/3600) ,
  141. CAST([Duration MicroSec] * 1.0 / SUM([Duration MicroSec]) OVER() * 100.0 AS DECIMAL(5, 2)) AS [Duration Percent],
  142. [Logical Reads],
  143. CAST([Logical Reads] * 1.0 / SUM([Logical Reads]) OVER() * 100.0 AS DECIMAL(5, 2)) AS [Logical Reads Percent],
  144. [Rows Returned],
  145. CAST([Rows Returned] * 1.0 / SUM([Rows Returned]) OVER() * 100.0 AS DECIMAL(5, 2)) AS [Rows Returned Percent],
  146. [Reads Per Row Returned] = [Logical Reads]/[Rows Returned],
  147. [Execution Count],
  148. CAST([Execution Count] * 1.0 / SUM([Execution Count]) OVER() * 100.0 AS DECIMAL(5, 2)) AS [Execution Count Percent],
  149. [Physical Reads],
  150. CAST([Physical Reads] * 1.0 / SUM([Physical Reads]) OVER() * 100.0 AS DECIMAL(5, 2)) AS [Physcal Reads Percent],
  151. [Logical Writes],
  152. CAST([Logical Writes] * 1.0 / SUM([Logical Writes]) OVER() * 100.0 AS DECIMAL(5, 2)) AS [Logical Writes Percent],
  153. [Logical IO],
  154. CAST([Logical IO] * 1.0 / SUM([Logical IO]) OVER() * 100.0 AS DECIMAL(5, 2)) AS [Logical IO Percent],
  155. [CLR Time MicroSec],
  156. CAST([CLR Time MicroSec] * 1.0 / SUM(case [CLR Time MicroSec] when 0 then 1 else [CLR Time MicroSec] end ) OVER() * 100.0 AS DECIMAL(5, 2)) AS [CLR Time Percent],
  157. [CPU Time Ms],[CPU Time Ms]/1000 [CPU Time Sec],
  158. [Duration MicroSec],[Duration MicroSec]/1000000 [Duration Sec]
  159. FROM DB_CPU_Stats
  160. --WHERE DatabaseID > 4 -- system databases
  161. --AND DatabaseID <> 32767 -- ResourceDB
  162. ORDER BY [Rank CPU] OPTION (RECOMPILE);
Add Comment
Please, Sign In to add comment