-- =================================================================================================================== -- Collector: CpuCollector ("cpu") -- =================================================================================================================== -- Hvad: SQL Servers og systemets CPU-forbrug pr. minut (scheduler monitor ring buffer, op til 60 minutter). -- Fil: src/SQLInsight.Collectors/Performance/CpuCollector.cs -- Interval: 5 min som standard (SQLInsight:CollectorIntervals:cpu) -- Versioner: SQL Server 2005 og nyere -- -- Rettigheder til agentens login (se db/permissions/grant-least-privilege.sql; [agent] = agentens login): -- GRANT VIEW SERVER STATE TO [agent]; -- SQL Server 2005-2019 -- GRANT VIEW SERVER PERFORMANCE STATE TO [agent]; -- SQL Server 2022+ (erstatter VIEW SERVER STATE) -- GRANT VIEW SERVER SECURITY STATE TO [agent]; -- SQL Server 2022+ -- -- Bruges af: SQLI-CPU-001, SQLI-ANOM-001 -- Read-only: Ja: kun SELECT samt lokale variabler, SET-sessionsindstillinger. Intet ændrer data, indstillinger -- eller objekter. -- Kørsel: Kør i SSMS som agentens login. Hver variant er sin egen batch (GO); en variant for en anden SQL Server-version -- end din kan fejle - det er forventet. Agenten kører altid med sessionsindstillingerne i _collectors/InstanceProbe.sql. -- =================================================================================================================== -- Variant: SQL Server 2005 og nyere -- Kilde: CpuCollector.Sql -- Kode: src/SQLInsight.Collectors/Performance/CpuCollector.cs : CpuCollector.Sql DECLARE @now_ticks bigint; SELECT @now_ticks = ms_ticks FROM sys.dm_os_sys_info; SELECT TOP (60) DATEADD(second, CAST((rb.[timestamp] - @now_ticks) / 1000 AS int), GETUTCDATE()), rb.record.value('(./Record/SchedulerMonitorEvent/SystemHealth/ProcessUtilization)[1]', 'int'), rb.record.value('(./Record/SchedulerMonitorEvent/SystemHealth/SystemIdle)[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 N'%%' ) rb ORDER BY rb.[timestamp] DESC GO -- Variant: SQL Server 2017 og nyere (Windows eller Linux) -- Kilde: CpuCollector.HostPlatformSql -- Kode: src/SQLInsight.Collectors/Performance/CpuCollector.cs : CpuCollector.HostPlatformSql SELECT host_platform FROM sys.dm_os_host_info GO