DMV 报告的每秒批处理请求数比活动监视器大数百万倍

NTD*_*DLS 4 performance sql-server dmv

我已经通过 SQL Server Profiler 验证了我的每秒请求大约为 30 个请求/秒,SSMS 活动监视器证实了这一点,但sys.dm_os_performance_counters报告数以亿计/秒。

知道什么可能导致这种严重差异吗?

询问:

SELECT
    RTrim(LTrim(object_name)) as object_name,
    RTrim(LTrim(counter_name)) as counter_name,
    cntr_value
FROM
    sys.dm_os_performance_counters 
WHERE 
    instance_name IN ('', '_Total')
    and counter_name IN (
        N'Batch Requests/sec'
        , N'SQL Compilations/sec'
        , N'SQL Re-Compilations/sec'
        , N'Transactions/sec')
Run Code Online (Sandbox Code Playgroud)

结果:

object_name counter_name    cntr_value
SQLServer:Databases Transactions/sec    191721399
SQLServer:SQL Statistics    Batch Requests/sec  242955426
SQLServer:SQL Statistics    SQL Compilations/sec    42048371
SQLServer:SQL Statistics    SQL Re-Compilations/sec 1200947
Run Code Online (Sandbox Code Playgroud)

Eri*_*ing 12

文档

注意:对于每秒计数器,此值是累积的。必须通过以离散时间间隔对值进行采样来计算速率值。任何两个连续样本值之间的差值等于所用时间间隔的比率。

如果您想要一些已经进行间隔采样的东西,sp_BlitzFirst非常简洁、免费且完全公开:我是贡献者等。