1

我们的 Oracle 9i 数据库中有一些物化视图,这些视图是很久以前由一个不再在这里工作的人创建的。是否有一种简单(或任何)方法来确定 Oracle 是否使用这些视图来提供查询服务?如果它们不再被使用,我们希望摆脱它们。但是我们不想在这些视图是允许一些随机报告在不到几个小时内运行的事实之后发现。我梦寐以求的答案会是这样的

SELECT last_used_date FROM dba_magic
WHERE materialized_view_name = 'peters_mview'

更棒的是,它可以告诉我哪些实际的 SQL 查询正在使用物化视图。我意识到我可能不得不接受更少。

如果有需要 10g 的解决方案,我们很快就会升级,所以这些答案也会很有用。

4

3 回答 3

6

一旦按照文档进行配置,Oracle 审计就可以告诉您这一点。配置后,通过“AUDIT SELECT ON {name of materialized view}”启用它。审计跟踪将在 SYS 模式的 AUD$ 表中。

于 2009-11-25T16:25:14.497 回答
0

除了审计之外的一种方法是在一次刷新之后和下一次刷新之前读取 v$segment_statistics 视图,以查看是否有任何读取。您还必须考虑任何自动统计收集作业。

于 2009-11-26T07:31:46.573 回答
0

V$SQLAREA 表有两列帮助识别数据库执行的查询。

SQL_TEXT - VARCHAR2(1000) - 当前游标的 SQL 文本的前一千个字符 SQL_FULLTEXT - CLOB - 当前游标的 SQL 文本的所有字符

我们可以使用这些列来查找使用上述物化视图的查询

于 2009-11-26T11:57:59.700 回答