I have SQL Server running on 32-core CPU, and I use Performance Monitor (perfmon.msc) to collect data on Processor: % Processor Time (Instance - _Total) and Process: % Processor Time (Instance - sqlservr.exe)

So for example for day 2019/07/21 (Sunday), it shows average values:

Processor: % Processor Time (Instance - _Total) - 3.959
Process: % Processor Time (Instance - sqlservr.exe) - 107.312

Why is such a difference ?

I expected sqlservr.exe to show values like 2.900 or 3.100 - something like this, but not 107.312

How to correlate _Total to sqlservr.exe ?

I am using MaxDOP limited to 8 server level setting on SQL Server, if this is any help

  • It's 107.312 out of 3.959. Commented Jul 22, 2019 at 11:10
  • 4
    Divide by number of cores: SELECT 107.312/32 AS SqlServerPercentTotal;
    – Dan Guzman
    Commented Jul 22, 2019 at 11:12

1 Answer 1


The Process: % Processor Time (Instance - sqlservr.exe) counter takes into account all of your cores. If you divide by the cores you get an answer much similar to what you expected.

This TechNet article explains it in far more detail but it uses this calculation to get the number you see: (No of Logical Cores * 100), So this is going to be a calculated over a baseline of more than 100.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.