SQL Server 2005부터 DMV가 제공되고 있으며, DMV를 이용하여 기존에 확인 하기 힘든 내부 동작에 대해서 확인 할 수 있습니다.
아래 스크립트는 Buffer pool에 존재하는 페이지 정보를 보여주는 DMV이며
이 내용을 기반으로 INDEX Scan, Seek, ReadAhead, checkpoint 등에 대한 보다 깊은 동작 방법을 이해 할 수 있습니다.
select
B.Database_id
,object_name(object_id,database_id) as ObjectName
,Page_id
,Page_Level
,Page_Type
,type_Desc
,Free_space_in_bytes
,is_modified
,Index_id
,A.Total_Pages as [할당된총페이지]
,A.USed_Pages
,A.Data_Pages
from sys.allocation_units a
right outer join sys.dm_os_buffer_descriptors b
ON a.allocation_unit_id = b.allocation_unit_id
left outer join sys.partitions p
ON a.container_id = p.hobt_id
WHERE B.database_id = db_id('Test')
and (p.object_id IS NULL OR p.object_id > 100)
and object_name(object_id,database_id) = 'test01'
Order by 1,2,3
송 혁, SQL Server MVP
sqler.pe.kr
nexondbteam.tistory.com