[DMV] 메모리 버퍼 사용량 조회하기
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 |
해당 개체의 데이터 페이지 또는 인덱스 페이지가 차지하고 있는 버퍼의 개수를 나타냅니다. |