【问题标题】:Oracle 10g - bar chart of queries statistics for a set of tablesOracle 10g - 一组表的查询统计条形图
【发布时间】:2014-04-03 18:35:28
【问题描述】:

我想要一个条形图,用于编译给定时期内一组表格的使用统计信息。

但是我必须提到,我没有访问 V$SEGMENTS 或 V$SESSION 表的权限。

SQL Developer 3 中是否有工具或插件可以在没有这些访问权限的情况下实现这一目标?

撞!

【问题讨论】:

  • 你能补充一些关于你想要什么以及为什么的细节吗?这个问题可能非常困难,原因有两个。 1) Oracle 存储查询有多种方式,但它们要么不捕获所有内容,要么长时间不存储。 2) 找出查询使用了哪些表几乎是不可能的,尽管有几种方法可以做出很好的猜测。
  • 您可能需要更准确地定义“在”一组表上“生成”的查询的含义——例如如果查询基于视图怎么办?如果在执行阶段查询从未真正查询过表怎么办?如果查询没有触及表,但使用了该表上的索引怎么办?如果表在另一个数据库上(即通过数据库链接)怎么办?
  • 谢谢你们两位的cmets,问题已被编辑。

标签: oracle oracle10g oracle-sqldeveloper


【解决方案1】:

对于 DML 统计信息,您可以使用 USER_TAB_MODIFICATIONS/ALL_TAB_MODIFICATIONS。

注意:/*ALL_TAB_MODIFICATIONS 描述了自上次收集表的统计信息以来已修改的当前用户可访问的表。 */

对于查询统计 - 仅系统视图为 V$SEGSTAT、v$db_object_cache 等

【讨论】:

  • 当我这样做时:select * from V$SEGSTAT; 我得到一个表/视图不存在错误。这是否意味着我无权访问这些表?
  • 是的,您没有权限。从 dba 运行此查询或向当前用户添加授权
【解决方案2】:

您始终可以查询 ALL_TABLES 以了解哪些表/视图可供您选择。请记住,该视图将向您显示表和视图,即使这在您当前的情况下并不重要(加入 ALL_TABLES 和 ALL_SEGMENTS 以区分什么是表,什么是视图)

【讨论】:

    猜你喜欢
    • 2011-03-11
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 2013-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多