오라클 대량 데이터 생성
DB CAFE
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
목차
1 오라클 샘플 데이터(대량) 생성[편집]
1.2 테이블 / 인덱스 생성[편집]
1.2.1 샘플 테이블 및 인덱스 생성[편집]
-- 테이블 생성
CREATE TABLE TB_BIG(
COLA VARCHAR2(20), COLB NUMBER , COLC NUMBER,
COLD VARCHAR2(30), COLE VARCHAR2(30), COLF VARCHAR2(30),
COLG NUMBER , COLH VARCHAR2(30), COLI VARCHAR2(30)
);
-- 인덱스 생성
CREATE INDEX IDX_COLB ON TB_BIG(COLB);
1.2.2 샘플 데이터 삽입(PL/SQL)[편집]
DECLARE
TYPE tbl_ins IS TABLE OF TB_BIG%ROWTYPE INDEX BY BINARY_INTEGER;
w_ins tbl_ins;
BEGIN
FOR i IN 1..14000 LOOP
w_ins(i).COLA :=i;
w_ins(i).COLB :=300000;
w_ins(i).COLC :=99;
w_ins(i).COLD :='ABC'||dbms_random.string('x',10); -- random 함수르 리용하여
w_ins(i).COLE :='EEEEEEEEEEEEEEEE';
w_ins(i).COLF :='FFFFFFFFFFFFFFFF';
w_ins(i).COLG :=9999999;
w_ins(i).COLH :='HHHHHHHHHHHHHHHHHHHHHHHHHH';
w_ins(i).COLI :='IIIIIIIIIIIIIIIIIIIIIIIIII';
END LOOP;
FORALL i in 1..14000 INSERT INTO TB_BIG VALUES w_ins(i);
COMMIT;
END;
/
1.2.2.1 테이블 건수 및 데이터 확인[편집]
SQL> select count(*) from TB_BIG;
COUNT(*)
----------
14000
1.2.2.2 테이블 사용 용량 확인[편집]
SELECT OWNER,SEGMENT_NAME,SEGMENT_TYPE,SUM(BYTES)/1024/1024 AS MB
FROM DBA_SEGMENTS
WHERE owner = 'TEST_TOBE' -- OWNER명 입력
AND SEGMENT_NAME = 'TB_BIG' -- 테이블이나 인덱스명 입력
GROUP BY OWNER,SEGMENT_NAME,SEGMENT_TYPE;
1.3 데이터 입력시 성능을 더 빠르게 하는 방법[편집]
- 테이블 nologging 모드로 변경 (오라클 엔터프라이즈 버전이면 병렬옵션 추가 )
alter table TB_BIG nologging parallel 32;
- 테이블 입력
INSERT INTO TB_BIG
SELECT * FROM TB_BIG;
-- 커밋
COMMIT;
- 테이블 logging + noparallel 모드로 변경
alter table TB_BIG logging noparallel; -- 로깅모드 + 병렬처리금지
1.4 더 많은 데이터 중복 삽입[편집]
insert into TB_BIG select * from TB_BIG;
COMMIT;