Отрицательные числа использования из SQL Server 2008 R2
Выполняя тесты производительности в нашей промежуточной среде, я иногда запускаю следующий запрос:
declare @ts_now bigint
select @ts_now = ms_ticks from sys.dm_os_sys_info
select dateadd (ms, (y.[timestamp] -@ts_now),
GETDATE()) as EventTime,
SQLProcessUtilization,
SystemIdle,
100 - SystemIdle - SQLProcessUtilization as OtherProcessUtilization
from
( select record.value('(./Record/@id)[1]', 'int') as record_id,
record.value('(./Record/SchedulerMonitorEvent/SystemHealth/SystemIdle)[1]', 'int') as SystemIdle,
record.value('(./Record/SchedulerMonitorEvent/SystemHealth/ProcessUtilization)[1]', 'int') as SQLProcessUtilization,
timestamp
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 x
) as y
Это Возвращает
Может кто-нибудь объяснить, как я получаю отрицательное число для использования? Я обнаружил это, пытаясь выяснить проблему использования ЦП из Диаграммы PSS, где загрузка ЦП SQL Server была больше, чем загрузка ЦП системы.
Мне еще предстоит выяснить любую проблему, но я должен предположить, что они связаны между собой.