Michał Szymański

Michał Szymański Development Manager
Finastra

Temat: Problem ze zbieraniem statystyk dba_hist_seg_stat

Cześć,
Muszę ustalić na których tablicach w naszej bazie jest największy ruch. Stwierdziłem, że użyję dba_hist_seg_stat
Niestety nie działa jak myślałem. Poniżej skrypt który tworzy przykładową bazę, robie snapshot , insertuje 3 wiersze, wykonuje parę selectów i ponownie robię snapshot. Jak wyświetlam dba_hist_seg_stat nie ma śladu żeby jakieś operacje były robione na stworzonej tabeli. Pytanie dlaczego? Poniżej cały kod.

-- create test data
create table testXX
(
a VARCHAR2(8),
b VARCHAR2(255),
c INTEGER
)
tablespace SDATA
/

INSERT INTO testXX (a,b,c) VALUES ('23423424','234234', 2222)
/
INSERT INTO testXX (a,b,c) VALUES ('13423424','234234', 2222)
/
INSERT INTO testXX (a,b,c) VALUES ('03423424','234234', 2222)
/

-- creating snapshoot
EXEC dbms_workload_repository.create_snapshot;
/
-- few sample select

SELECT * FROM testXX
/

SELECT * FROM testXX WHERE a='23423424'
/

-- creating final snapshoot
EXEC dbms_workload_repository.create_snapshot;

select
owner,
object_name,
LOGICAL_READS_DELTA,
BUFFER_BUSY_WAITS_DELTA ,
DB_BLOCK_CHANGES_DELTA ,
PHYSICAL_READS_DELTA ,
PHYSICAL_WRITES_DELTA ,
PHYSICAL_READS_DIRECT_DELTA ,
PHYSICAL_WRITES_DIRECT_DELTA
from
dba_hist_seg_stat s,
dba_hist_seg_stat_obj o,
dba_hist_snapshot sn
where
o.object_name = 'testXX'
and
s.obj# = o.obj#
order by
3 desc;