반응형
Oracle 1000만건 테이블 INSERT LOOP 쿼리
데이터 성능 이슈를 시험하기 위해 1000만건이 들어있는 테이블이 필요했다.
가장 쉬운 방법으로는 PL/SQL 로 짜서 넣으면 되겠다고 생각 했다.
1. 테이블 생성
CREATE TABLE emp (
emp_no number(10)
, emp_name varchar2(30)
, emp_salary number(10)
, sex varchar2(3)
, created_date varchar2(14)
, updated_date varchar2(14)
);
2. 테이블에 1000만건 INSERT
declare
v_date varchar2(14);
v_sex varchar2(3);
BEGIN
FOR i IN 1..10000000
LOOP
v_date := '20' || CEIL(DBMS_RANDOM.VALUE(10,17)) || CEIL(DBMS_RANDOM.VALUE(10,12)) || CEIL(DBMS_RANDOM.VALUE(10,31)) || CEIL(DBMS_RANDOM.VALUE(10,23)) || CEIL(DBMS_RANDOM.VALUE(10,59)) || CEIL(DBMS_RANDOM.VALUE(10,59));
IF MOD(i, 2) = 0 THEN v_sex := '남';
ELSE v_sex := '여';
END IF;
INSERT INTO emp
VALUES (i, DBMS_RANDOM.STRING('U',30), DBMS_RANDOM.VALUE(1000,7000), v_sex, v_date, v_date );
IF MOD(i, 10000) = 0 THEN
COMMIT;
END IF;
END LOOP;
END;
'DB > ORACLE' 카테고리의 다른 글
oracle 10g 재기동 방법 정리 (0) | 2022.08.31 |
---|---|
오라클 테이블스페이스 사용량 조회 (0) | 2022.08.23 |
Oracle - 테이블 잠김 풀기, 테이블 락 해제, table lock (0) | 2022.03.16 |
Oracle 오라클 인코딩 설정, 캐릭터셋 변경, 한글깨짐 (0) | 2022.03.16 |
Oracle 테이블스페이스 생성, 연결, 조회, 용량 조회 (0) | 2022.03.16 |
댓글