forked from bulentgucuk/DBA-Scripts
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCPU Utilization from DBA database.sql
More file actions
40 lines (37 loc) · 1.41 KB
/
CPU Utilization from DBA database.sql
File metadata and controls
40 lines (37 loc) · 1.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
USE DBA
-- Daily CPU utilization last 30 days
SELECT
CAST(EventTime AS DATE) AS [Date]
, MAX(SqlCpuUtilization) AS MaxSQLCPU
, MAX(OtherProcessCpuUtilization) AS MaxOtherCPU
, MAX(SystemIdleProcess) AS MaxIdle
, MIN(SqlCpuUtilization) AS MinSQLCPU
, MIN(OtherProcessCpuUtilization) AS MinOtherCPU
, MIN(SystemIdleProcess) AS MinIdle
, AVG(SqlCpuUtilization) AS AvgSQLCPU
, AVG(OtherProcessCpuUtilization) AS AvgOtherCPU
, AVG(SystemIdleProcess) AS AvgIdle
FROM dbo.CpuUtilization
WHERE EventTime > DATEADD(DAY, -30, GETDATE())
GROUP BY CAST(EventTime AS DATE)
--HAVING MAX(SqlCpuUtilization) > 50
OPTION(RECOMPILE);
-- Hourly CPU utilization last 7 days
SELECT
CAST(EventTime AS DATE) AS [Date]
, CAST(CAST(DATEPART(HOUR, EventTime) AS VARCHAR(2)) + ':00' AS TIME(0)) AS TimeStart
, CAST(CAST(DATEPART(HOUR, EventTime) AS VARCHAR(2)) + ':59:59' AS TIME(0)) AS TimeEnd
, MAX(SqlCpuUtilization) AS MaxSQLCPU
, MAX(OtherProcessCpuUtilization) AS MaxOtherCPU
, MAX(SystemIdleProcess) AS MaxIdle
, MIN(SqlCpuUtilization) AS MinSQLCPU
, MIN(OtherProcessCpuUtilization) as MinOtherCPU
, MIN(SystemIdleProcess) AS MinIdle
, AVG(SqlCpuUtilization) AS AvgSQLCPU
, AVG(OtherProcessCpuUtilization) AS AvgOtherCPU
, AVG(SystemIdleProcess) AS AvgIdle
FROM dbo.CpuUtilization
WHERE EventTime > DATEADD(DAY, -7, GETDATE())
GROUP BY CAST(EventTime AS DATE), DATEPART(HOUR, EventTime)
ORDER BY [Date], TimeStart
OPTION(RECOMPILE);