1
只是想知道有沒有辦法列出數據庫中所有未被查詢的對象。 我知道你可以通過sys.dba_Objects看到last_ddl_time和Created Time。但我對特殊對象的索引和tables.And誰使用它更感興趣的是Total_reads。(不是所有者)列出舊對象
感謝
只是想知道有沒有辦法列出數據庫中所有未被查詢的對象。 我知道你可以通過sys.dba_Objects看到last_ddl_time和Created Time。但我對特殊對象的索引和tables.And誰使用它更感興趣的是Total_reads。(不是所有者)列出舊對象
感謝
你大概可以使用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
中的數據,並通過從不同快照中減去統計值來計算增量。
謝謝。有沒有一種觀點可以給我關於時間的信息。我們有一個非常大的基礎設施,高達400 Tb只在開發中,我想開始監視一段時間內沒有使用的對象。 – Imran
@Imran - 我添加了一些關於AWR表的內容,但我並不認爲這會成爲你的追隨者。你可能會更好地在某個時間間隔自己從'V $ SEGMENT_STATISTICS'獲取數據,並減去統計值。 –
謝謝@Justin你真的很有幫助 – Imran