资源池统计计数器报告为零

Hun*_*rX3 5 sql-server dmv sql-server-2016

我在我的 2016 SQL Server 上使用资源调控器。在之前的 2016 SQL Server 版本中,此查询:

select *
from master.sys.dm_os_performance_counters opc
where opc.object_name = 'SQLServer:Resource Pool Stats'
and counter_name = 'CPU usage target %'
Run Code Online (Sandbox Code Playgroud)

将根据资源池配置设置和系统负载产生资源池的 CPU 使用率目标值。但是,现在它们始终为零。

我还使用 perfmon 来确认这一点(以及运行合法查询)。有谁知道为什么或者这个计数器是否改变了?根据msdn文章,它应该仍然有效。

Vic*_*ork -2

尝试一下,看看这是否给出了非零的值:

SELECT  perfCount.object_name ,
    perfCount.counter_name ,
    CASE WHEN perfBase.cntr_value = 0 THEN 0
         ELSE ( CAST(perfCount.cntr_value AS float) / perfBase.cntr_value ) * 100
    END AS cntr_Value
FROM    ( SELECT    *
          FROM      sys.dm_os_performance_counters
          WHERE     object_name = 'SQLServer:Resource Pool Stats'
                    AND counter_name = 'CPU usage %' ) AS perfCount
        INNER JOIN ( SELECT *
                     FROM   sys.dm_os_performance_counters
                     WHERE  object_name = 'SQLServer:Resource Pool Stats'
                            AND counter_name = 'CPU usage % base' ) AS perfBase
            ON perfCount.object_name = perfBase.object_name; 
Run Code Online (Sandbox Code Playgroud)