Steven Feuerstein’s answer;
http://htmldb.oracle.com/pls/otn/f?p=2853:4:::NO::P4_QA_ID:8323
My tests;
DROP TABLE aglbtemptbl purge ;
CREATE GLOBAL TEMPORARY TABLE aglbtemptbl ( acolumn VARCHAR2(64) ) ;
set sqlprompt “_user ‘on’ _date ‘at’ _connect_identifier > ”
set timing on
alter system flush shared_pool;
alter system flush buffer_cache;
set serveroutput off
declare
l_start NUMBER;
l_upto NUMBER := 10000;
begin
l_start := dbms_utility.get_time;
for i in 1..l_upto loop
dbms_output.put_line(‘En büyük dba bizim dba
‘);
end loop;
INSERT INTO aglbtemptbl VALUES (’serveroutput off -> ‘|| (dbms_utility.get_time – l_start) || ‘ hsecs’);
end;
/
– Elapsed: 00:00:01.03
alter system flush shared_pool;
alter system flush buffer_cache;
set serveroutput on
declare
l_start NUMBER;
l_upto NUMBER := 10000;
begin
l_start := dbms_utility.get_time;
for i in 1..l_upto loop
dbms_output.put_line(‘En büyük dba bizim dba
‘);
end loop;
INSERT INTO aglbtemptbl VALUES (’serveroutput on -> ‘||(dbms_utility.get_time – l_start) || ‘ hsecs’);
end;
/
– Elapsed: 00:00:06.90
On ile off arasındaki bu farkı nasıl yorumluyorsunuz? Cache etkisi flush edilerek yok edildi ve 5 kez çalıştırdım makineda başka bir şey çalışmıyorken;
HR on 22/09/2006 at XE > select * from aglbtemptbl ;
ACOLUMN
————————————————————-
serveroutput off -> 50 hsecs
serveroutput on -> 41 hsecs
serveroutput off -> 47 hsecs
serveroutput on -> 36 hsecs
serveroutput off -> 48 hsecs
serveroutput on -> 33 hsecs
serveroutput off -> 68 hsecs
serveroutput on -> 31 hsecs
serveroutput off -> 83 hsecs
serveroutput on -> 32 hsecs
10 rows selected.