연구개발/DBA

DMV를 통한 성능모니터링

HEAD1TON 2011. 8. 14. 00:38

목적 : DVM를 통하여 쿼리단에서 PERFMON을 측정해보자.

 

SQL2005 부터 도입된 DMV를 통하여 쿼리 단에서도 성능모니터링의 확인 가능하다.
주의 할점은 sys.dm_os_performance_counters 뷰 컬럼 중 cntr_type
에 따라 계산이 필요 할 수 도 있고 없을 수도 있다.
상세내역은 하기의 url을 참조.
http://msdn.microsoft.com/en-us/library/aa394569(VS.85).aspx

 

하기는 10초 동안의 버퍼 관리자의 지연 기록기가 기록한 버퍼 수('Lazy writes/sec')를 구하는 예제

 

DECLARE @time_Before DATETIME;

DECLARE @time_After  DATETIME;

DECLARE @value_Before BIGINT;

DECLARE @value_After BIGINT;

 

 

SELECT @value_Before=cntr_value, @time_Before=getdate()

FROM sys.dm_os_performance_counters

WHERE object_name='SQLServer:Buffer Manager' 

AND counter_name ='Lazy writes/sec';

WAITFOR

DELAY

'00:00:10';

 

SELECT @value_After=cntr_value, @time_After =getdate()

FROM sys.dm_os_performance_counters

WHERE object_name='SQLServer:Buffer Manager' 

AND counter_name ='Lazy writes/sec';

 

 

SELECT (@value_After - @value_Before )/datediff(ss,@time_Before,@time_After)

        AS [Lazy writes/sec];