by 구루비 DBA_EXTENTS DBA_FREE_SPACE DBA_SEGMENTS DBA_DATA_FILES DBA_TABLESPACES [2002.01.24]
하나 이상의 파일을 가진 테이블스페이스가 생성 되면 DBA_TABLESPACES에 추가 됩니다.
데이타베이스의 각 파일에 대해 DBA_DATA_FILES에 추가 됩니다.
동시에 파일 헤더를 제외한 각 데이터 파일 공간은 DBA_FREE_SPACE에 하나의 사용가능한 익스텐트로 보여 집니다.
세그먼트가 생성되면 DBA_SEGMENTS에서 관련된 행을 볼 수 있습니다.
세그먼트의 익스텐트에 할당된 공간은 DBA_EXTENTS에서 볼 수 있습니다.
반면 DBA_FREE_SPACE는 세그먼트에 할당된 익스텐트가 있는 파일의 사용 가능 영역이 줄어든 것으로 조정 됩니다.
세그먼트에 현재 할당된 익스텐트와 블록의 수의 조회 예제 입니다.
SQL> SELECT extents, blocks, tablespace_name, segment_name
FROM DBA_SEGMENTS
WHERE owner='STORM';
EXTENTS BLOCKS TABLESPACE_NAME SEGMENT_NAME
---------- ---------- ------------------- ---------------------
1 5 STORM PLAN_TABLE
1 25 STORM STORM_BINARY
9 915 STORM STORM_BOARD
1 2 STORM STORM_BOARD_CTNT_LST
1 2 STORM STORM_COMMUNITY_TYPE
1 15 STORM STORM_CONTENT
1 475 STORM STORM_ZIPCODE
1 5 STORM STORM_PHONE
1 5 STORM STORM_ADDR
....
특정 세그먼트에 대한 익스텐드를 조회 합니다.
SQL> SELECT extent_id, file_id, block_id, blocks
FROM DBA_EXTENTS
WHERE owner='STORM'
AND segment_name= 'STORM_BOARD';
EXTENT_ID FILE_ID BLOCK_ID BLOCKS
--------- ---------- ---------- ----------
5 8 893 90
0 8 37 30
8 8 1438 305
1 8 743 20
2 8 763 30
3 8 793 40
4 8 833 60
6 8 1003 135
7 8 1158 205
SQL> SELECT count(*), max(blocks), sum(blocks), tablespace_name
FROM DBA_FREE_SPACE
GROUP BY tablespace_name;
COUNT(*) MAX(BLOCKS) SUM(BLOCKS) TABLESPACE_NAME
---------- ----------- ----------- --------------------
1 6120 6120 CONTEXT
1 11263 11263 DRSYS
1 1254 1254 IDX
1 7423 7423 INDX
1 424 424 OEM_REPOSITORY
9 60863 63999 RBS
5 62258 62308 STORM
1 20536 20536 SYSTEM
36 8935 9215 TEMP
3 1053 1213 TEST
1 1535 1535 TOOLS
1 13711 13711 USERS
- 강좌 URL : http://www.gurubee.net/lecture/1104
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.