Skip to content

Commit 4a765d9

Browse files
committed
Add Get_CPU_Usage_Per_Database script
1 parent 41a682c commit 4a765d9

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/*
2+
<documentation>
3+
<summary>Get CPU Usage Per Database</summary>
4+
<returns>1 data set with 2 columns: database name and CPUTimeAsPercentage.</returns>
5+
<issues>No</issues>
6+
<author>Eli Leiba </author>
7+
<created>2019-11-05</created>
8+
<modified>2019-11-05</modified>
9+
<version>1.0</version>
10+
<originalLink>https://www.mssqltips.com/sqlservertip/6195/sql-server-function-to-measure-cpu-usage-per-database/</originalLink>
11+
<sourceLink>https://github.com/ktaranov/sqlserver-kit/blob/master/Scripts/Get_CPU_Usage_Per_Database.sql</sourceLink>
12+
</documentation>
13+
*/
14+
15+
SELECT
16+
T.[Database]
17+
, T.CPUTimeAsPercentage
18+
FROM
19+
(SELECT
20+
[Database],
21+
CONVERT (DECIMAL (6, 3), [CPUTimeInMiliSeconds] * 1.0 /
22+
SUM ([CPUTimeInMiliSeconds]) OVER () * 100.0) AS [CPUTimeAsPercentage]
23+
FROM
24+
(SELECT
25+
dm_execplanattr.DatabaseID,
26+
DB_Name(dm_execplanattr.DatabaseID) AS [Database],
27+
SUM (dm_execquerystats.total_worker_time) AS CPUTimeInMiliSeconds
28+
FROM sys.dm_exec_query_stats dm_execquerystats
29+
CROSS APPLY
30+
(SELECT
31+
CONVERT (INT, value) AS [DatabaseID]
32+
FROM sys.dm_exec_plan_attributes(dm_execquerystats.plan_handle)
33+
WHERE attribute = N'dbid'
34+
) dm_execplanattr
35+
GROUP BY dm_execplanattr.DatabaseID
36+
) AS CPUPerDb
37+
) AS T;

0 commit comments

Comments
 (0)