본문 바로가기
DB/ORACLE

Oracle 1000만건 테이블 INSERT LOOP 쿼리

by 애플 로그 2022. 7. 12.
반응형

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;

 

댓글