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

Τελευταίες δημοσιεύσεις από Stratos Matzouranis (Προβολή όλων)
- Πώς φτιάχνουμε Logon Trigger για να ελέγχουμε τους χρήστες που επιτρέπουμε να συνδεθούν σε Oracle Database - 13 Ιανουάριος 2025
- Πώς συλλέγουμε to actual execution plan από τα queries με χρήση Extended Event και πως διαβάζουμε τα δεδομένα του - 2 Δεκέμβριος 2024
- Πώς βρίσκουμε τι δικαιώματα έχει ένας χρήστης σε Oracle Database - 1 Νοέμβριος 2024
Ο 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 που είχαμε ανά λεπτό:
