connect / as sysdba
create view dual2
as select dummy from x$dual
where instance = USERENV('INSTANCE');
grant select on dual2 to public;
create public synonym dual2 for dual2;
connect scott/tiger;
create table temp
( sqlno number(3),
b_a varchar2(2),
stat number,
value number
);
SQL l
1
declare
2
v_dummy date;
3
v_start number;
4
begin
5
insert into temp select 1,'b',statistic#,value from v$mystat;
6
v_start := dbms_utility.get_time;
7
for i in 1..2000 loop
8
select sysdate into v_dummy from dual;
9
end loop;
10
dbms_output.put_line('1st stat used: '||(dbms_utility.get_time - v_start)||' seconds');
11
12
insert into temp select 1,'ab',statistic#,value from v$mystat;
13
v_start := dbms_utility.get_time;
14
for i in 1..2000 loop
15
select sysdate into v_dummy from dual2;
16
end loop;
17
dbms_output.put_line('2st stat used: '||(dbms_utility.get_time - v_start)||' seconds');
18
insert into temp select 2,'a',statistic#,value from v$mystat;
19
end;
20*
SQL /
1st stat used: 57 seconds
2st stat used: 45 seconds
PL/SQL procedure successfully completed.
SQL l
1
select (select name from v$statname where statistic# = t2.stat) name, t1.value value1, t2.value value2
2
from
3
(
4
select 1,b.stat,b.value - a.value value
5
from
6
(select * from temp
7
where sqlno=1
8
and b_a = 'b') a,
9
(select * from temp
10
where sqlno=1
11
and b_a = 'ab')
b
12
where b.stat = a.stat
13
) t1,
14
(select 2,t3.stat,t4.value - t3.value value
15
from
16
(select * from temp
17
where sqlno=1
18
and b_a = 'ab') t3,
19
(select * from temp
20
where sqlno=2
21
and b_a = 'a')
t4
22
where t4.stat = t3.stat
23
) t2
24
where t1.stat = t2.stat
25* and t1.value <t2.value
SQL /
NAME
VALUE1
VALUE2
---------------------------------------- ---------- ----------
session logical reads
10016
20
enqueue releases
1
2
db block gets
8011
15
consistent gets
2005
5
db block changes
8
18
free buffer requested
1
2
calls to kcmgcs
0
2
calls to get snapshot scn: kcmgss
2004
2002
redo entries
5
11
redo size
5124
5928
no work - consistent read gets
2002
2
table scans (short tables)
2000
0
table scan rows gotten
2000
0
table scan blocks gotten
2000
0
buffer is not pinned count
2004
4
15 rows selected.