Oracle Admin 강좌 (Oracle9i)
Storage 정보 조회 5 3 20,402

by 김정식 DBA_EXTENTS DBA_FREE_SPACE DBA_SEGMENTS DBA_DATA_FILES DBA_TABLESPACES [2002.01.24]


Storage 정보 조회 관련 데이터 사전

  하나 이상의 파일을 가진 테이블스페이스가 생성 되면 DBA_TABLESPACES에 추가 됩니다.

  데이타베이스의 각 파일에 대해 DBA_DATA_FILES에 추가 됩니다.

  동시에 파일 헤더를 제외한 각 데이터 파일 공간은 DBA_FREE_SPACE에 하나의 사용가능한 익스텐트로 보여 집니다.

  세그먼트가 생성되면 DBA_SEGMENTS에서 관련된 행을 볼 수 있습니다.

  세그먼트의 익스텐트에 할당된 공간은 DBA_EXTENTS에서 볼 수 있습니다.

  반면 DBA_FREE_SPACE는 세그먼트에 할당된 익스텐트가 있는 파일의 사용 가능 영역이 줄어든 것으로 조정 됩니다.

  • - 사용중인 익그텐트 : DBA_EXTENTS
  • - 사용가능한 익스텐트 : DBA_FREE_SPACE
  • - 세그먼트 : DBA_SEGMENTS
  • - 데이타 파일 : DBA_DATA_FILES
  • - 테이블스페이스 : DBA_TABLESPACES

세그먼트 정보 조회(DBA_SEGMENTS)

  세그먼트에 현재 할당된 익스텐트와 블록의 수의 조회 예제 입니다.

 
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   
....     
    

사용중인 익스텐트 정보 조회(DBA_EXTENTS)

  특정 세그먼트에 대한 익스텐드를 조회 합니다.

 
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  
    

사용 가능한 익스텐트 정보의 조회(DBMS_FREE_SPACE)

 
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

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

by 웅 [2007.05.16 15:18:02]
동시에 파일 헤더를 제외한 각 데이터 파일 공간은 DBA_FREE_SPACE에 하나의 사용가능한 익스텐트로 보여 집니다.

이 부분에서 조건없이 쿼리를 했을 경우 같은 테이블스페이스에 FILE_ID가 같은 내용이 나오는데 어떤건 2개 어떤건 3개 이렇게 나오거든요? 위의 문장만 보면 헤더하나 데이터파일별로 헤더하나 데이터파일하나 두개가 나와야될것 같은데 3개가 나오는 것은 무슨 이유인가요? 하나만 있는 경우도 있네요.

by 학생 [2009.09.04 09:02:15]
4. 번 제목에 오타 났네요. (DBMS_FREE_SPACE) → (DBA_FREE_SPACE)

by 돌이맹이 [2012.02.27 14:02:28]
잘 봤습니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입