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

Τελευταίες δημοσιεύσεις από Stratos Matzouranis (Προβολή όλων)
- Πώς να γυρίσουμε μία Oracle Database πίσω στον χρόνο με χρήση restore point σε περιβάλλον Data Guard - 28 Απρίλιος 2025
- Πώς μπορούμε να αυξήσουμε την απόδοση στο target Replicat του Oracle GoldenGate με παραλληλία - 19 Μάρτιος 2025
- Πώς φτιάχνουμε χρήστες σε βάσεις δεδομένων που ανήκουν σε Always On Availability Group του SQL Server - 10 Φεβρουάριος 2025
Ο 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 που είχαμε ανά λεπτό:
