문서유형ㅣ기술정보
분야ㅣ관리/환경설정
적용제품버전ㅣTibero 6 이상
문서번호ㅣTADTI108
개요
테이블 스페이스의 정의 및 변경방법, 오브젝트 별 리오그 등 테이블스페이스 관리에 대한 방법을 안내합니다.
방법
테이블스페이스 정의
데이터 저장 단위 중 가장 상위에 있는 단위 (데이터 블록 > 익스텐트 > 세그먼트 > 테이블스페이스)
- 테이블 및 인덱스를 저장해 놓는 논리적인 공간
- 실제 물리적인 공간은 데이터파일(.dtf)
- TIBERO TABLESPACE: SYSTEM, TEMP, UNDO, USER TABLESPACE
테이블 스페이스 사용
테이블스페이스 생성 (CREATE TABLE)
문법
CREATE_TABLESPACE
예시
SQL>CREATE TABLESPACE TEST_TBS DATAFILE '/home/tibero/tbdata/test_tbs_01.dtf' SIZE 20M DEFAULT STORAGE(INITIAL 128K NEXT 256K MAXEXTENTS UNLIMITED PCTINCREASE 0); CREATE TABLE TEST.TEST01 (A CHAR(2000), B INT) TABLESPACE TEST_TBS;
실행 결과
SELECT SEGMENT_NAME, EXTENT_ID, BLOCK_ID, BLOCKS, BYTES/1024 ||'K' "SIZE" FROM DBA_EXTENTS WHERE TABLESPACE_NAME='TEST_TBS' ORDER BY SEGMENT_NAME,EXTENT_ID; SEGMENT_NAME EXTENT_ID BLOCK_ID BLOCKS SIZE -------------------- ---------- ---------- ---------- -------------------- TEST01 0 7 16 128K TEST01 1 23 16 128K TEST01 2 39 16 128K TEST01 3 55 16 128K TEST01 4 71 16 128K TEST01 5 87 16 128K TEST01 6 103 16 128K TEST01 7 119 16 128K TEST01 8 135 128 1024K TEST01 9 263 128 1024K
다른 INITIAL값으로 적용해도 size는 128K로 동일합니다. (storage 옵션 미존재)
실행 결과
테이블스페이스 각 데이터파일마다 헤더_블록+헤더_비트맵 공간을 위해 쓰이는 예약 공간이 대략 64K 입니다.
SQL> CREATE TABLESPACE test_tbs2 DATAFILE 'test_tbs_02.dbf' SIZE 2624K EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K; --위 테이블스페이스의 사이즈 2624K는 아래와 같은 규칙에 의해 산출 2624K = (128K*20) +( 64K*1개의 데이터파일)
SQL> CREATE TABLESPACE test_tbs2 DATAFILE 'test_tbs_02.dbf' SIZE 2560K EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;
실행 결과
SQL> CREATE TABLESPACE TBS_WASTE DATAFILE 'test_tbs_03.dbf' SIZE 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 50M;
실행 결과
테이블스페이스 변경 (ALTER TABLE)
문법
ALTER_TABLESPACE
기타
SHINK가 되는 usgmt
수행되는 TRANSACTION이 없는 UNDO SEGMENT/ UNDO_RETENTION이 지난 공간에 대해서만 SHRINK할 수 있습니다.
SHRINK 가능 기준 : usgmt 최소 extent(2개) 유지 및 512 block 이상인 경우
오프라인 상태 변경 여부
SYSTEM, UNDO, TEMP 테이블스페이스는 오프라인 상태로 변경할 수 없습니다.
오브젝트 리오그(Objec Reorg)
오브젝트 타입별 리오그에 대해 안내합니다.
인덱스 리오그
- 인덱스를 삭제 한 후에 새로 생성 혹은 리빌드
- 인덱스가 생성되는 동안에는 테이블에 대해 INERT/UPDATE/DELETE 작업 수행 불가능
- 인덱스 온라인 REBUILD 가능
테이블 리오그
- EXPORT/IMPORT
INSERT .. SELECT RENAME TESET TO TEST _BACK; CREATE TABLE TEST; INSERT INTO TEST SELECT * FROM TEST_BACK; commit; DROP TABLE TEST_BACK; TABLESPACE 변경 ALTER TABLE TEST MOVE TABLESPACE USR; ALTER TABLE TEST MOVE TABLESPACE TEST_TBS; DBMS_REDEFINITION 패키지 사용
주의
테이블 삭제하는 과정에서 PL/SQL 저장 프로시져나 함수 등이 존재할 경우 오브젝트들이 INVALID, GRANT, SYNONYM 등도 모두 사라지게 되므로 주의가 필요합니다.