2017-06-21 7 views
0

MSSQLデータベースのTPSを取得しようとしました。
私はパフォーマンスカウンタ値を取得するには、このクエリを使用しています:Microsoft SQLパフォーマンスカウンター更新レート

SELECT * 
FROM sys.dm_os_performance_counters 
WHERE OBJECT_NAME = 'SQLServer:Databases' 
AND counter_name = 'Transactions/sec' 
AND instance_name = 'DB_NAME' 

しかし、更新率が非常に低いです。 1分くらいかかります。
また、 "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

リアルタイムビューが必要な場合は、PerfMonを使用して1秒あたりのトランザクションを測定できますか? – dbajtr

答えて

0

the documentationによれば、値を適切に解釈するには、cntr_typeを考慮する必要があります。この場合、累積カウンタです。つまり、トランザクションごとにインクリメントしています。だから、トランザクション/秒を取得するには、異なる時に2つの観測を取る必要があり、観察の違いと時間の違いの商を取る必要があります。たとえば、Tマイナスゼロで10の値を、Tプラス5秒で20の値を観測した場合、平均トランザクション/秒(TPS)は(20-10)/(5-0)= 10/5 = 2TPSである。