DBMS_SPACE 패키지의 기본 개념과 패키지 내의 프러시저를 사용하는 방법을 설명합니다.
개요
DBMS_SPACE는 세그먼트의 크기와 공간 사용에 대한 정보를 제공하는 패키지입니다.
프러시저
본 절에서는 DBMS_SPACE 패키지에서 제공하는 프러시저를 알파벳 순으로 설명합니다.
SPACE_USAGE
세그먼트의 High Water Mark(이하 HWM) 아래의 공간(즉, 현재 사용하는 공간)에 대한 사용 정보를 제공합니다. 단, 비트맵 블록(bitmap block), 세그먼트 헤더(segment header), 익스텐트 맵 블록(extent map block) 의 정보는 포함되지 않습니니다.
참고
High Water Mark란 테이블, 인덱스, 클러스터가 생성되고 한 번도 사용되지 않은 공간을 의미합니다.
SPACE_USAGE 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
DBMS_SPACE.SPACE_USAGE
(
segment_owner IN VARCHAR2,
segment_name IN VARCHAR2,
segment_type IN VARCHAR2,
unformatted_blocks OUT NUMBER,
unformatted_bytes OUT NUMBER,
fs1_blocks OUT NUMBER,
fs1_bytes OUT NUMBER,
fs2_blocks OUT NUMBER,
fs2_bytes OUT NUMBER,
fs3_blocks OUT NUMBER,
fs3_bytes OUT NUMBER,
fs4_blocks OUT NUMBER,
fs4_bytes OUT NUMBER,
full_blocks OUT NUMBER,
full_bytes OUT NUMBER,
partition_name IN VARCHAR2 DEFAULT NULL
);
파라미터
파라미터
설명
segment_owner
스키마 객체를 소유한 사용자의 이름
segment_name
스키마 객체의 이름
segment_type
스키마 객체의 종류로, 다음 중 하나의 값을 가짐
TABLE
TABLE PARTITION
TABLE SUBPATITION
INDEX
INDEX PARTITION
INDEX SUBPATITION
CLUSTER
LOB
LOB PARTITION
LOB SUBPATITION
unformatted_blocks
세그먼트의 HWM 아래에서 포맷되지 않은 블록의 개수
unformatted_bytes
세그먼트의 HWM 아래에서 포맷되지 않은 블록의 양(in bytes)
fs1_blocks
0%와 25% 사이에 free space를 갖는 블록의 개수
fs1_bytes
0%와 25% 사이에 free space를 갖는 블록의 양(in bytes)
fs2_blocks
25%와 50% 사이에 free space를 갖는 블록의 개수
fs2_bytes
25%와 50% 사이에 free space를 갖는 블록의 양(in bytes)
fs3_blocks
50%와 75% 사이에 free space를 갖는 블록의 개수
fs3_bytes
50%와 75% 사이에 free space를 갖는 블록의 양(in bytes)
fs4_blocks
75%와 100% 사이에 free space를 갖는 블록의 개수
fs4_bytes
75%와 100% 사이에 free space를 갖는 블록의 양(in bytes)
full_blocks
full로 marking된 블록의 개수
full_bytes
full로 marking된 블록의 양(in bytes)
partition_name
다음의 경우에 따라 다르게 정의
파티션이면 파티션의 이름
파티션이 compose 방식이라면 서브파티션(subpartition)의 이름
예제
UNUSED_SPACE
세그먼트의 HWM 위의 공간(즉, 현재 사용하지 않는 공간)에 대한 사용 정보를 제공합니다.
UNUSED_SPACE 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
파라미터
설명
segment_owner
스키마 객체를 소유한 사용자의 이름
segment_name
스키마 객체의 이름
segment_type
스키마 객체의 종류로, 다음 중 하나의 값을 가짐
TABLE
TABLE PARTITION
TABLE SUBPATITION
INDEX
INDEX PARTITION
INDEX SUBPATITION
CLUSTER
LOB
LOB PARTITION
LOB SUBPATITION
total_blocks
세그먼트의 전체 블록의 개수
total_bytes
세그먼트의 전체 블록의 양(in bytes)
unused_blocks
세그먼트의 HWM 위의 블록의 개수
unused_bytes
세그먼트의 HWM 위의 블록의 양(in bytes)
last_used_extent_file_id
맨 마지막에 INSERT를 위해 사용된 익스텐트가 속한 파일 ID
last_used_extent_block_id
맨 마지막에 INSERT를 위해 사용된 익스텐트가 속한 시작 블록(starting block)의 ID 파일 ID와 같이 합하면 DBA가 됨
DBMS_SPACE.UNUSED_SPACE
(
segment_owner IN VARCHAR2,
segment_name IN VARCHAR2,
segment_type IN VARCHAR2,
total_blocks OUT NUMBER,
total_bytes OUT NUMBER,
unused_blocks OUT NUMBER,
unused_bytes OUT NUMBER,
last_used_extent_file_id OUT NUMBER,
last_used_extent_block_id OUT NUMBER,
last_used_block OUT NUMBER,
partition_name IN VARCHAR2 DEFAULT NULL
);