繁体   English   中英

SQL Oracle:查找使用视图/包/功能的最后时间戳

[英]SQL Oracle: find last timestamp a view/package/function was used

我想通过删除旧视图、包等来清理我们的数据库。 所以我们不再需要维护它们了。 我知道甲骨文方面有大量支持视图,例如 all_views。 有没有最后使用日期或类似的东西?

最好的问候,彼得

没有最后使用时间之类的东西,如果你的意思是最后一次 object (表,视图,过程,function,package 类型已被用户使用,等等......

要真正知道您需要启用 AUDIT,但审计并非旨在为所有事情启用,仅出于特定原因,并且非常小心,因为它具有性能考虑。

想象一下,我有很多属于 TEST_USER 的对象。 我想知道有多少正在使用:

AUDIT ALL BY TEST_USER BY ACCESS;

从 Oracle 数据库的 11g 版本开始,BY SESSION 和 BY ACCESS 导致 Oracle 数据库为每个审计语句和操作写入一个审计记录。 与 BY ACCESS 相比,BY SESSION 继续向审计跟踪填充不同的值。 如果您没有指定任何子句,则默认为 BY SESSION。

在此处阅读有关审计的更多信息

https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_4007.htm#SQLRF01107

您在 DBA_OBJECTS ( ALL_OBJECTS ) 中拥有的唯一字段是:

  • 已创建:创建 object 的时间戳。
  • LAST_DDL_TIME 上次修改 object 的时间戳,由 DDL 语句(包括 grants 和 revokes )产生。

您还可以在 DBA_DEPENDENCIES 中看到彼此之间的依赖关系(当动态 sql 调用对象时无效)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM