Step 1: Install the Clippy digital assistant SSMS add-on
Go to github and grab the code. Clippy wants you to be on a recent version of SQL Server so only SQL Server 2022+ is supported.
Step 2: Create your first Clippy alert and schedule it
For illustrative purposes, below is a very basic check that throws an alert if CPU >= 80%
DECLARE
@CPUFromBuffer INT,
@LogMessage VARCHAR(100);
select TOP (1) @CPUFromBuffer = record.value('(./Record/SchedulerMonitorEvent/SystemHealth/ProcessUtilization)[1]', 'int')
from (
select timestamp, convert(xml, record) as record
from sys.dm_os_ring_buffers
where ring_buffer_type = N'RING_BUFFER_SCHEDULER_MONITOR'
and record like '%<SystemHealth>%'
) as RingBufferInfo
ORDER BY timestamp DESC;
IF @CPUFromBuffer >= 80
BEGIN
SET @LogMessage = 'Your SQL Server is using ' + CAST(@CPUFromBuffer AS VARCHAR(10)) + '% of available CPU.'
EXEC dbo.AddPaperClipToErrorLog @LogMessage;
END;
Step 3: Trigger the alert
On my local machine with 8 physical cores I can simply run the following query and wait:
WITH vCTE AS ( SELECT v.v FROM (VALUES (0),(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),(40),(41),(42),(43),(44),(45),(46),(47),(48),(49),(50),(51),(52),(53),(54),(55),(56),(57),(58),(59),(60),(61),(62),(63),(64),(65),(66),(67),(68),(69),(70),(71),(72),(73),(74),(75),(76),(77),(78),(79),(80),(81),(82),(83),(84),(85),(86),(87),(88),(89),(90),(91),(92),(93),(94),(95) ) v(v) ) SELECT MIN(v0.v + ca.v) FROM vCTE v0 CROSS APPLY ( SELECT MIN(v1.v + v2.v + v3.v + v4.v + v5.v) v FROM vCTE v1 CROSS JOIN vCTE v2 CROSS JOIN vCTE v3 CROSS JOIN vCTE v4 CROSS JOIN vCTE v5 WHERE v1.v > (v0.v - 96) ) ca OPTION (NO_PERFORMANCE_SPOOL, MAXDOP 8, USE HINT (N'ENABLE_PARALLEL_PLAN_PREFERENCE'));
Step 4: Check for alerts in the error log

The post How to Add Clippy Support to SSMS appeared first on Darling Data.