Список старых объектов - PullRequest
       10

Список старых объектов

1 голос
/ 18 августа 2011

просто интересно, есть ли способ перечислить все объекты в базе данных, которые не были запрошены.я знаю, что вы можете увидеть last_ddl_time и время создания через sys.dba_Objects.Но меня больше интересует Total_reads для объектов, особенно индексов и таблиц. И кто его использовал. (Не владелец)

спасибо

1 Ответ

2 голосов
/ 18 августа 2011

Вы, вероятно, можете использовать представление V$SEGMENT_STATISTICS, чтобы получить информацию, которую вы ищете. Например, если вы хотите увидеть, сколько логических чтений было выполнено в каждом сегменте в схеме SCOTT с момента последнего перезапуска базы данных

SQL> select owner, object_name, value
  2    from v$segment_statistics
  3   where statistic_name = 'logical reads'
  4     and owner = 'SCOTT';

OWNER                          OBJECT_NAME                         VALUE
------------------------------ ------------------------------ ----------
SCOTT                          STATS_TEST                            448
SCOTT                          BIN$bQrMO1+dTOOh9S8K9O+z+Q==$0          0
SCOTT                          COUNTER_TEST                         1760
SCOTT                          BIN$763dsleISbi+AfEp20EN7A==$0         80
SCOTT                          TEST_TABLE                           5424
SCOTT                          BIN$5QAh3TmjRWqeMKof7tY93g==$0        144
SCOTT                          BIN$1i4uV7CbQL2Pl0tANHsJQw==$0         80
SCOTT                          BIN$8ydZ/jHySAeudojTmTtByQ==$0         48
SCOTT                          FOO_TEMP                              112
SCOTT                          ERR$_FOO                               64
SCOTT                          EVENT                                  32
SCOTT                          FOO                                    32
SCOTT                          T1                                    176
SCOTT                          T2                                     80
SCOTT                          EMP                                    32
SCOTT                          GRAD_STUDENT_TB                       240
SCOTT                          SYS_C0024557                           64
SCOTT                          PK_EMP                                  0

18 rows selected.

Если у вас есть лицензия на использование AWR и срок хранения AWR достаточно велик, и вы можете сделать это за счет меньшего количества доступной статистики, а вас интересуют только наиболее часто используемые сегменты, вы также можете использовать DBA_HIST_SEG_STAT Таблица.

SQL> ed
Wrote file afiedt.buf

  1  select snap.begin_interval_time,
  2         stat.logical_reads_delta,
  3         obj.object_name
  4    from dba_hist_seg_stat stat
  5         join dba_hist_snapshot snap using (snap_id)
  6         join dba_objects obj on (obj.object_id = stat.obj#)
  7*  where obj.owner = 'SCOTT'
SQL> /

BEGIN_INTERVAL_TIME            LOGICAL_READS_DELTA OBJECT_NAME
------------------------------ ------------------- --------------------
16-AUG-11 04.00.11.428 PM                      160 T1
18-AUG-11 12.00.13.856 PM                      144 GRAD_STUDENT_TB
18-AUG-11 12.00.13.856 PM                       48 SYS_C0024557
20-AUG-11 03.00.59.376 PM                      144 LOAN_TXN

Однако если вы пытаетесь выяснить, используется ли конкретный объект незначительно, AWR, вероятно, не является правильным решением, поскольку он может не отображаться в качестве одного из верхних сегментов в любом окне снимка, несмотря на то, что он иногда используется.

Кроме того, вы можете написать собственный процесс для периодического сбора данных из V$SEGMENT_STATISTICS и вычисления дельт путем вычитания значений статистики из различных снимков.

...