我尝试获取MSSQL数据库的TPS 我使用此查询来检索性能计数器值:
SELECT *
FROM sys.dm_os_performance_counters
WHERE OBJECT_NAME = 'SQLServer:Databases'
AND counter_name = 'Transactions/sec'
AND instance_name = 'DB_NAME'
但更新率非常低。一分钟左右。
它还说" Transactions / sec"但是中的价值
" cntr_value"非常高并且缓慢增加(5-10 /分钟)。
object_name > SQLServer:Databases
counter_name > Transactions/sec
instance_name > DB_NAME
cntr_value > 4258268
cntr_type > 272696576
我错过了什么?
答案 0 :(得分:0)
根据the documentation,您必须考虑cntr_type才能正确解释该值。在这种情况下,它是一个累积计数器。也就是说,它随着每笔交易而递增。因此,要获得事务/秒,您需要在不同时间进行两次观察,并根据观察结果的差异和时间的差异得出商数。例如,如果我在T-minus零处观察到10的值而在T-plus 5秒处观察到20的值,我将计算平均事务数/秒(TPS)为(20-10)/(5-0)= 10 / 5 = 2 TPS。