sql - SQL Oracle:查找使用视图/包/函数的最后一个时间戳
问题描述
我想通过删除旧视图、包等来清理我们的数据库。所以我们不再需要维护它们了。我知道甲骨文方面有大量支持视图,例如 all_views。有没有最后使用日期或类似的东西?
最好的问候,彼得
解决方案
没有 LAST USED TIME 之类的东西,如果您指的是用户进程最后一次使用对象(表、视图、过程、函数、包、类型、同义词等)的时间。
要真正知道您需要启用 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 ) 中拥有的唯一字段是:
- CREATED:创建对象的时间戳。
- LAST_DDL_TIME 由 DDL 语句产生的对象的最后修改时间戳(包括 grants 和 revokes )。
您还可以在 DBA_DEPENDENCIES 中看到彼此之间的依赖关系(在动态 sql 调用对象时无效)。
推荐阅读
- ms-word - VSTO Word Office 互操作:查找对书签的引用
- continuous-integration - 在 GitLab CI/CD yaml 文件中使用变量
- react-native - 在 React Native 中的每个组件前面创建一个 Modal
- knockout.js - 如何根据淘汰赛js中的单选按钮选择填充文本框
- javascript - 使用 onclick 方法更改 img src
- android - 使用 UsbDeviceConnection android 重启后热敏打印机仅打印一次
- karma-runner - 业力:ChromeHeadless 出现“Disconnectedreconnect 超时前失败”
- python-3.x - 使用 Python 从多个 PDF 文件中查找多个单词
- windows - Windows 上的 Emacs:如何设置 Autoconf / GNU 构建系统
- r - 从 CSV 读取数据时 type.convert 出错