연구개발/DBA

[DMV] 메모리 버퍼 사용량 조회하기

HEAD1TON 2011. 11. 4. 14:26
728x90
반응형

1. DMV 쿼리

 

현재 데이터베이스 서버에서 사용하고 있는 버퍼를 개체 별로 조회하기 데이터베이스

SELECT

             b.database_id,

             db=db_name(b.database_id)

             ,p.object_id

             ,object_name(p.object_id) as objname

             ,p.index_id

             ,buffer_count=count(*)

FROM sys.allocation_units a,

          sys.dm_os_buffer_descriptors b,

          sys.partitions p

WHERE a.allocation_unit_id = b.allocation_unit_id

             and a.container_id = p.hobt_id

             and b.database_id = db_id() -- 현재의 데이터베이스

GROUP BY b.database_id,p.object_id, p.index_id

ORDER BY buffer_count desc

GO

 

 

2. 사용 목적

서버의 버퍼 할당량을 개체 별로 조회할 때 이용합니다. 메모리를 많이 차지하고 있는 개체 및 개체의 인덱스 정보를 파악할 수 있습니다.

 

 

3. 결과

 

 

 

4. 결과 정의

 

Column

Description

database_id

데이터베이스 ID 입니다. sys.databases 에서 확인할 있습니다.

db

데이터베이스 명입니다.

object_id

인덱스가 있는 테이블 또는 뷰의 ID 입니다. sys.objects 에서 개체에 대한 ID 확인할 있습니다.

objname

개체 명입니다.

index_id

인덱스 ID입니다.

buffer_count

해당 개체의 데이터 페이지 또는 인덱스 페이지가 차지하고 있는 버퍼의 개수를 나타냅니다.

 

728x90
반응형