首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >列出旧对象

列出旧对象
EN

Stack Overflow用户
提问于 2011-08-19 01:23:32
回答 1查看 200关注 0票数 1

只是想知道是否有一种方法可以列出数据库中所有尚未查询的对象。我知道你可以通过sys.dba_Objects看到last_ddl_time和创建的时间。但我对对象上的Total_reads更感兴趣,特别是索引和使用过它的tables.And (不是所有者)。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-19 01:48:08

您可能可以使用V$SEGMENT_STATISTICS视图来获取您想要的信息。例如,如果您想要查看自上次数据库重新启动以来在SCOTT模式中的每个段上执行了多少逻辑读取

代码语言:javascript
运行
复制
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保留时间足够长,并且您可以使用较少的可用统计信息创建due,并且您只对最常用的段感兴趣,那么您也可以使用DBA_HIST_SEG_STAT表。

代码语言:javascript
运行
复制
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捕获数据,并通过从不同快照中减去统计值来计算增量。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7111514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档