오라클 세그먼트
DB CAFE
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
1 세그먼트[편집]
1.1 개요[편집]
- 세그먼트 종류 : 테이블세그먼트, 인덱스 세그먼트, 언두 세그먼트, 롤백 세그먼트, 템포러리 세그먼트 등
- 사용자가 하나의 테이블을 생성하는 것은 하나의 테이블 세그먼트를 만드는 것과 동일함. 테이블이나 인덱스는 세그먼트의 한 종류
- 세그먼트는 하나 이상의 익스텐트로(Extent)로 구성되며 하나의 Extent는 연속적으로 할당된 공간을 의미
- 모든 Segment 는 적어도 하나의 Extent를 가지며 Rollback Segment의 경우엔 최소 2개의Extent를 요구함.
1.2 세그먼트 서브 타입 MSSM[편집]
Manual Segment Space Management으로 수동으로 세그먼트를 관리한다.
CREATE TABLESPACE 이름
DATAFILE '파일명' SIZE 1G
SEGMENT SPACE MANAGEMENT MANUAL;
1.3 세그먼트 서브 타입 ASSM(Default)[편집]
Automatic Segment Space Management으로 자동으로 세그먼트를 관리한다. 옛날에는 MSSM을 사용하였지만 요즘엔 ASSM으로 많이 사용한다.
CREATE TABLESPACE 이름
DATAFILE '파일명' SIZE 1G
SEGMENT SPACE MANAGEMENT AUTO;
1.4 세그먼트 조회[편집]
select decode( segment_type, 'TABLE',segment_name, table_name ) order_col1,
decode( segment_type, 'TABLE', 1, 2 ) order_col2,
'alter ' || segment_type || ' ' || segment_name ||
decode( segment_type, 'TABLE', ' move ', ' rebuild ' ) ||
chr(10) ||
' HONEY_DATASPACE ' || chr(10) ||
' storage ( initial ' || initial_extent || ' next ' ||
next_extent || chr(10) ||
' minextents ' || min_extents || ' maxextents ' ||
max_extents || chr(10) ||
' pctincrease ' || pct_increase || ' freelists ' ||
freelists || ');'
from user_segments,
(select table_name, index_name from user_indexes )
where segment_type in ( 'TABLE', 'INDEX' )
and segment_name = index_name (+)
order by 1, 2