본문 바로가기
프로그래머/프로그래밍

DBCC SHOWCONTIG

by plog 2009. 8. 14.

DBCC SHOWCONTIG
지정한 테이블의 데이터와 인덱스에 대한 조각화 정보를 표시합니다

DBCC SHOWCONTIG
    [     ( { table_name | table_id | view_name | view_id }
             [ , index_name | index_id ]
        )
    ]
     [ WITH { ALL_INDEXES
                 | FAST [ , ALL_INDEXES ]
                 | TABLERESULTS [ , { ALL_INDEXES } ]
                 [ , { FAST | ALL_LEVELS } ]
            }
    ]
ex) dbcc  showcontig (IE_PitcherRecord)

----------------------------------------------------------------------
DBCC SHOWCONTIG scanning 'IE_PitcherRecord' table...
Table: 'IE_PitcherRecord' (2121058592); index ID: 1, database ID: 12
TABLE level scan performed.
- Pages Scanned................................: 17
- Extents Scanned..............................: 3
- Extent Switches..............................: 2
- Avg. Pages per Extent........................: 5.7
- Scan Density [Best Count:Actual Count].......: 100.00% [3:3]
- Logical Scan Fragmentation ..................: 0.00%
- Extent Scan Fragmentation ...................: 33.33%
- Avg. Bytes Free per Page.....................: 1041.4
- Avg. Page Density (full).....................: 87.13% 

Avg. Bytes free per page:
스캔된 페이지에서 사용 가능한 평균 바이트 수입니다. 이 값이 클수록 페이지의 채우기 비율이 낮으므로 값이 작을수록 좋습니다. 이 값은 행 크기에 따라 달라지며 행 크기가 크면 값이 커집니다 

Avg. Page density (full):
평균 페이지 밀도입니다(단위: %). 이것은 행 크기를 고려한 값이므로 페이지의 채우기 비율을 더욱 정확하게 알 수 있습니다. 값이 클수록 좋습니다

결과 집합의 페이지 당 사용 가능한 평균 바이트 수와 평균 페이지 밀도(전체) 통계를 보면 인덱스 페이지의 꽉 찬 정도를 알 수 있습니다. 페이지 당 사용 가능한 평균 바이트 수를 계산한 값은 낮고, 평균 페이지 밀도(전체)를 계산한 값은 높아야 합니다.  

개선방법
1.클러스터된 인덱스를 다시 만들면 데이터가 재구성되어 전체 데이터 페이지가 만들어집니다. 채우기 수준은 FILLFACTOR 옵션을 사용하여 구성할 수 있습니다. 이 방법의 단점은 삭제하고 다시 만드는 동안 인덱스가 오프라인 상태라는 것과 작업의 원자성에 있습니다. 인덱스를 만들 때 인터럽트가 있으면 인덱스가 다시 만들어지지 않습니다

2.DBCC INDEXDEFRAG 명령은 온라인 작업이므로 명령을 실행하는 동안 인덱스를 사용할 수 있습니다. 또한 이 작업은 완료된 작업을 손실하지 않고 인터럽트할 수 있습니다. 이 방법의 단점은 클러스터된 인덱스를 삭제하고 다시 만드는 작업만큼 데이터를 다시 잘 구성하지 못한다는 점입니다

 

댓글