검색결과 리스트
Database/Oracle 에 해당되는 글 1건
- 2010.09.08 LOB 컬럼을 가진 테이블 관리
2010. 9. 8. 18:48
LOB 컬럼을 포함한 테이블 생성
- CREATE TABLE 테이블명 (
일반컬럼명 VARCHAR2(255) NOT NULL,
LOB컬럼명 CLOB NULL,
CONSTRAINT PK인덱스명 PRIMARY KEY (일반컬럼명)
USING INDEX TABLESPACE 인덱스테이블스페이스명
)
TABLESPACE 데이터테이블스페이스명
LOB(LOB컬럼명) STORE AS LD_테이블명_CLOB
(TABLESPACE LOB데이터테이블스페이스명 DISABLE STORAGE IN ROW
INDEX LI_테이블명_CLOB (TABLESPACE LOB인덱스테이블스페이스명))
;
LOB 컬럼 추가
- ALTER TABLE 테이블명 ADD (컬럼명 BLOB)
LOB(컬럼명) STORE AS LD_테이블명_BLOB (TABLESPACE 데이터LOB테이블스페이스명
INDEX LI_테이블명_BLOB (TABLESPACE 인덱스LOB테이블스페이스명))
;
LOB MOVE
- 인덱스 REBUILD 필요
- ALTER TABLE 테이블명 MOVE LOB(컬럼명) STORE AS (TABLESPACE 테이블스페이스명);
ALTER TABLE 테이블명 MOVE LOB(컬럼명) STORE AS LD_테이블명_BLOB
(TABLESPACE 데이터LOB테이블스페이스명
INDEX LI_테이블명_BLOB (TABLESPACE 인덱스LOB테이블스페이스명));
ALTER INDEX 인덱스명 REBUILD TABLESPACE 테이블스페이스명
NOLOGGING PARALLEL(DEGREE 8);
ALTER INDEX 인덱스명 LOGGING NOPARALLEL;
LOB Rename
- LOB DATA는 Rename됨
- LOB INDEX는 Rename되지 않음
- 인덱스 rebuild 필요
- ALTER TABLE 테이블명 MOVE LOB(컬럼명) STORE AS (TABLESPACE 테이블스페이스명);
ALTER TABLE 테이블명 MOVE LOB(컬럼명) STORE AS LD_테이블명_BLOB - (TABLESPACE 데이터LOB테이블스페이스명
INDEX LI_테이블명_BLOB (TABLESPACE 인덱스LOB테이블스페이스명));
ALTER INDEX 인덱스명 REBUILD TABLESPACE 테이블스페이스명 - NOLOGGING PARALLEL(DEGREE 8);
ALTER INDEX 인덱스명 LOGGING NOPARALLEL;
LOB 을 포함한 파티션 테이블 생성
- LOB컬럼을 파티션키로 사용할 수 없다.
- CREATE TABLE 테이블명
(
일반컬럼명 VARCHAR2(8) NOT NULL,
LOB컬럼명 BLOB NULL,
)
PARTITION BY RANGE(일반컬럼명)
(
PARTITION PT_테이블명_200803 VALUES LESS THAN ('20080399')
TABLESPACE 데이터테이블스페이스명
LOB(LOB컬럼명) STORE AS LD_PT_테이블명_200803_BLOB
(TABLESPACE LOB데이터테이블스페이스명 DISABLE STORAGE IN ROW
INDEX LI_PT_테이블명_200803_BLOB - (TABLESPACE LOB인덱스테이블스페이스명)),
PARTITION PT_테이블명_200804 VALUES LESS THAN ('20080499')
TABLESPACE 데이터테이블스페이스명
LOB(LOB컬럼명) STORE AS LD_PT_테이블명_200804_BLOB
(TABLESPACE LOB데이터테이블스페이스명 DISABLE STORAGE IN ROW
INDEX LI_PT_테이블명_200804_BLOB - (TABLESPACE LOB인덱스테이블스페이스명)),
PARTITION PT_테이블명_999999 VALUES LESS THAN ('99999999')
TABLESPACE 데이터테이블스페이스명
LOB(LOB컬럼명) STORE AS LD_PT_테이블명_999999_BLOB
(TABLESPACE LOB데이터테이블스페이스명 DISABLE STORAGE IN ROW
INDEX LI_PT_테이블명_999999_BLOB - (TABLESPACE LOB인덱스테이블스페이스명))
);
LOB 을 포함한 파티션 테이블 SPLIT
- 인덱스 rebuild 필요
- ALTER TABLE 테이블명 SPLIT PARTITION PT_테이블명_999999 AT ('20080599')
INTO (PARTITION PT_테이블명_200805 TABLESPACE TS_GPDRM06
LOB(LOB컬럼명) STORE AS LD_PT_테이블명_200806_BLOB
(TABLESPACE 데이터LOB테이블스페이스명 DISABLE STORAGE IN ROW
INDEX LI_PT_테이블명_200806_BLOB - (TABLESPACE 인덱스LOB테이블스페이스명)),
PARTITION PT_테이블명_999999 TABLESPACE 데이터테이블스페이스명
LOB(LOB컬럼명) STORE AS LD_PT_테이블명_999999_BLOB
(TABLESPACE 데이터LOB테이블스페이스명 DISABLE STORAGE IN ROW
INDEX LI_PT_테이블명_999999_BLOB - (TABLESPACE 인덱스LOB테이블스페이스명))
);
LOB SEGMENT 조회
- SELECT * FROM DBA_LOBS;
SELECT * FROM DBA_SEGMENTS;
이 글은 스프링노트에서 작성되었습니다.