--다음 스크립트를 실행시키고, 첨부된 프로그램을 실행 시킴.
--첨부된 프로그램으로 O/S가 버추얼 메모리를 사용하도록 하고.
--exec dut2();를 실행시켜 질의 실행 시간을 측정함.
--가능하면 본 질의의 "--질의 실행"부터 "질의 끝" 부분까짐에 데이터 베이스가 실행해야할 질의 들을 넣고.
-- exec dut2()를 실행시켜 사용가능한 메모리를 찾을 것.
-- 사용가능한 메모리를 찾으면 이를통해 SGA메모리 크기에도 적용시켜 볼것..!
drop table scott.test2;
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,
CONSTRAINT "PK_TEST2" PRIMARY KEY("ID")) 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(100000)
CREATE OR REPLACE PROCEDURE "SCOTT"."DUT2" as
v_startTime timestamp;
v_endTime timestamp;
v_diff number(10,6) ;
begin
--set serveroutput on
v_startTime := systimestamp;
----질의 시작
update test2 set data='kekek' where val1=1;
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 dut2();


