簡體   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