drop table scott.test2;
drop table scott.test3;
drop sequence scott.test2val;

CREATE TABLE "SCOTT"."TEST2" ("ID" NUMBER(10) NOT NULL, "DATA"
    VARCHAR2(1000) NOT NULL, "VAL1" NUMBER(10) NOT NULL, "VAL2"
    NUMBER(10) NOT NULL)     TABLESPACE "EXAMPLE"  ;

CREATE TABLE "SCOTT"."TEST3" ("ID" NUMBER(10) NOT NULL, "DATA"
    VARCHAR2(1000) NOT NULL, "VAL1" NUMBER(10) NOT NULL, "VAL2"
    NUMBER(10) NOT NULL)     TABLESPACE "EXAMPLE"  ;


CREATE SEQUENCE "SCOTT"."TEST2VAL" INCREMENT BY 1 START WITH 1
MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE
CACHE 20 NOORDER;

 

 


CREATE  OR  REPLACE  PROCEDURE dut
 (
 su number
)
as
  v_startTime  timestamp;
  v_endTime  timestamp;
  v_diff          number(10,6)  ;
begin
  --set  serveroutput on
  v_startTime := systimestamp;
  ----질의 시작
  for i in 1..su loop
       insert into scott.test2
            values(scott.test2val.nextval,test2val.currval, test2val.currval,test2val.currval);
     commit;
   end loop;
    commit;
    ----질의 끝
  v_endTime := systimestamp;
  v_diff :=     to_number(to_char(v_endTime ,'sssss.ff')) -  to_number(to_char(v_startTime ,'sssss.ff')) ;
  DBMS_OUTPUT.PUT_LINE('질의 진행 시간 : '||v_diff);
end;
/

set  serveroutput on
exec dut(1000000)







CREATE OR REPLACE  PROCEDURE "SCOTT"."DUT9" as
  v_startTime  timestamp;
  v_endTime  timestamp;
  v_diff          number(10,6)  ;
begin
 --set  serveroutput on
  v_startTime := systimestamp;
  delete from test3;
  commit;
  ----질의 시작
  insert into test3
  select * from test2 order by id desc;
  ----질의 끝
  commit;
  v_endTime := systimestamp;
  v_diff :=     to_number(to_char(v_endTime ,'sssss.ff')) -  to_number(to_char(v_startTime ,'sssss.ff')) ;
  DBMS_OUTPUT.PUT_LINE('질의 진행 시간 : '||v_diff);
end;
/

exec dut9();