Πώς μπορούμε να δούμε τι CPU Usage είχαμε ανά λεπτό στον SQL Server

Τελευταίες δημοσιεύσεις από Stratos Matzouranis (Προβολή όλων)
- Πώς ενεργοποιούμε το Native Steaming Replication σε PostgreSQL - 19 Οκτώβριος 2026
- Πώς κάνουμε Partitioning σε υφιστάμενο πίνακα στη PostgreSQL και πώς το συντηρούμε - 12 Οκτώβριος 2026
- Πώς μπορούμε να παρακολουθούμε με ένα report το performance (τύπου Oracle AWR) στη PostgreSQL με το pg_profile extension - 5 Οκτώβριος 2026
Ο SQL Server κατά την εγκατάσταση του δημιουργεί ένα lightweight Extended Event με μέγεθος έως 5mb στο οποίο καταγράφει πληροφοριές για το performance. Αυτό το Extended Event ονομάζεται system_health και σε αυτό το άρθρο θα δούμε πως μπορούμε με ένα απλό query να δούμε τι CPU Usage είχαμε στον server ανά λεπτό.
Δεν πρέπει να ξεχνάμε όμως ότι οι πληροφορίες γίνονται rollover και επικαλύπτονται με καινούργια data. Οπότε το χρονικό διάστημα που μπορούμε να δούμε στο παρελθόν δεν είναι πολύ μεγάλο.
Ο κώδικας
Το μόνο που χρειάζεται να κάνουμε είναι σε ένα query window να τρέξουμε τον παρακάτω κώδικά:
SELECT time,100-record.value('(./Record/SchedulerMonitorEvent/SystemHealth/SystemIdle)[1]', 'INT') as 'Cpu Usage %'
FROM (
SELECT CONVERT(xml, record) AS [record],dateadd (ms,timestamp - (select ms_ticks from sys.dm_os_sys_info),getdate()) as 'Time'
FROM sys.dm_os_ring_buffers
WHERE ring_buffer_type = N'RING_BUFFER_SCHEDULER_MONITOR'
AND record LIKE '%<SystemHealth>%'
order by time desc) AS x
Το αποτέλεσμα που θα μας επιστρέψει είναι το CPU Usage που είχαμε ανά λεπτό:


