본문 바로가기

유용한 Tip

페이지 할당 및 저장 방식

이번시간에는 페이지 할당 및 저장 방식에 대해서 확인해 보도록 하겠습니다. 


지난 시간에 배운 DBCC HELP 명령어를 통해 PAGE 명령어에 대한 구문을 확인합니다. 

dbcc help('page')

--dbcc page ( {'dbname' | dbid}, filenum, pagenum [, printopt={0|1|2|3} ])


PAGE 정보를 보기 위해서는 TraceFlag 3604를 활성해 해줘야 합니다.

DBCC traceon(3604)

 

페이지 정보를 보기 위해서는 파일넘버와 페이지 넘버가 필요합니다. 

그래서 DBCC PAGE, DBCC IND, DBCC Traceon(3604)를 Package로 기억해 두시기 바랍니다. 


dbcc help('ind')

--dbcc ind ( { 'dbname' | dbid }, { 'objname' | objid }, { nonclustered indid | 1 | 0 | -1 | -2 } [, partition_number] )

--DBCC 실행이 완료되었습니다. DBCC에서 오류 메시지를 출력하면 시스템 관리자에게 문의하십시오.


DBCC ind ('smileyoon', test, 0) 명령어를 통해 파일넘버, 페이지 넘버를 확인할 수 있으며, 3번째 네모칸에서 확인 가능하듯 IndexLevel을 확인할 수 있다. 

dbcc page('SMILEYOON', 1, 304, 3) with tableresults

=> with tableresults를 삭제 후 실행해 보시기 바랍니다.


SQL Server 2012에서는 DBCC Ind를 대체할 DMF가 새로 나왔습니다. 

sys.dm_db_database_page_allocations

 select page_type_desc, * from sys.dm_db_database_page_allocations(db_id(),object_id('test'), 1, null, 'detailed')

=>page_type도 확인할 수 있습니다.


[참고 사이트]
  • More undocumented fun: DBCC IND, DBCC PAGE, and off-row columns

http://blogs.msdn.com/b/sqlserverstorageengine/archive/2006/12/13/more-undocumented-fun_3a00_-dbcc-ind_2c00_-dbcc-page_2c00_-and-off_2d00_row-columns.aspx


  • A REPLACEMENT FOR DBCC IND IN SQL SERVER 2012
http://www.jasonstrate.com/2013/04/a-replacement-for-dbcc-ind-in-sql-server-2012/