dbms:oracle:concept:tablesizeanalyze
문서의 이전 판입니다!
TABLE 사용량 분석
해당 Table에 할당되어 있는 크기 측정하는 방법
- USER_SEGMENTS 라는 Dictionary View에서 확인할 수 있다.
- 점유용량확인하는 방법이다.
SELECT SEGMENT_NAME, BYTES FROM USER_SEGMENTS WHERE SEGMENT_TYPE='TABLE'
실제 사용공간 측정
- Table에 공간할당은 되었으나 아직 (전혀) 사용되지 않는 공간을 제외한 실제 사용되고 있는 공간을 제외하고 계산하는 방법이다.
- 즉, High Water Mark(HWM) 아래의 공간을 측정하는 것이다.
측정방법
- 해당 Table을 Analyze 한다.
yze TABLE <table_name> compute statistics;
- 해당 Table의 blocks를 구한다.
SELECT blocks FROM dba_tables WHERE TABLE_NAME ='<table_name>';
blocks + 1(segment header block) : 해당 Table 이 사용중인 database block count
- 위의 계산에는 사용된 후 delete에 의해 현재 완전히 비어 있는 block도 사용하고 있는 block으로 인식하므로
완전히 비어 있는 block을 제거하기 위해서는 아래의 결과값을 빼주면 된다.- rowid는 다음과 같이 구성되어 있다.
object fil block row ------ --- ------ --- AAABPW AAF AAAAv1 AAA
- 따라서 아래의 Query의 결과값 빼주면 된다.
HWM 아래 할당은 되었지만 완전히 비어 있는 block을 빼주면, 조금이라도 사용된 block count만 구할 수 있다.SELECT COUNT(1) FROM (SELECT SUBSTR(ROWID,1,15) FROM <table_name> GROUP BY SUBSTR(ROWID,1,15) );
dbms/oracle/concept/tablesizeanalyze.1202921274.txt.gz · 마지막으로 수정됨: 저자 starlits
