Oracle 檢查表的資料變動

2021-07-03 04:35:32 字數 2096 閱讀 2247

本知識點僅適用於oracle 9i以上的版本。

檢視表的資料變動情況請使用sql語句:select * from user_tab_modifications;

user_tab_modifications表的字段如下,從這個表中能夠輕鬆找到表中做的修改,刪除,增加記錄的情況

注意以及使用方法:

1、但這張表不是實時更新的,預設情況15分鐘更新一次,所以你更新一張表,可能在 user_tab_modifications裡不能立刻體現出來。

2、想要實時檢視也有辦法實現,那就是在執行select * from user_tab_modifications之前先執行exec dbms_stats.flush_database_monitoring_info;這個儲存過程目的就是立刻重新整理異動資訊的

3、當執行上面的儲存過程出錯時候,錯誤如下:

error at line 1:

ora-20000: insufficient privileges

ora-06512: at "sys.dbms_stats", line 2148

ora-06512: at "sys.dbms_stats", line 14135

ora-06512: at line 1

哈哈錯誤很明顯,沒有許可權,那麼提權!

4、為使用者提權,首先用管理員賬號登陸,授予某個賬戶執行dbms_stats.flush_database_monitoring_info的許可權。

grant analyze any to epplm(這裡是你的使用者名稱)

5、ok提權成功,那麼返回到原賬號(epplm),再執行exec dbms_stats.flush_database_monitoring_info,ok沒問題

6、此時再執行select * from user_tab_modifications,記錄出現了。

7、flush_database_monitoring_info儲存過程之後,所有之前的操作都將被提交!

8、對於oracle10i以及以上的版本,dml操作,都可以在該表中查到,因為這個功能預設是開啟的,如果沒有開啟,可以通過這個方法開啟:alter table t monitoring;

儲存過程:

createorreplaceprocedurepro_analyze_and_tablemodifyis

2begin

3dbms_output.put_line('開始執行,過程很長,請等待');

4dbms_stats.flush_database_monitoring_info;--立刻重新整理

5insertintotablemodificationsselect*fromuser_tab_modifications;--兩個表結構一樣

6pro_analyzetables;

7dbms_output.put_line('執行成功');

8endpro_analyze_and_tablemodify;

Oracle 檢查表的資料變動

本知識點僅適用於oracle 9i以上的版本。檢視表的資料變動情況請使用sql語句 select from user tab modifications user tab modifications表的字段如下,從這個表中能夠輕鬆找到表中做的修改,刪除,增加記錄的情況 注意以及使用方法 1 但這張表...

Oracle優化檢查表

分類檢查專案 相關檔案或結果 狀態備註 日誌及檔案 oracle alert 日誌 bdump udump下是否存在明顯的報警 listener相關日誌 sql net日誌 引數 引數檔案 listener.ora tnsnames.ora 作業系統 作業系統版本 檢查作業系統補丁 節點名作業系統v...

編碼檢查表

使用本表的最好辦法是花兩周時間 評審一下你的設計和編碼實現。先花幾分鐘時間看一看列表,一旦熟悉了這些問題,就可 以靈活自如地按它寫 了。此時,就可以把錶放在一邊了。一般問題 你是否為程式建立了 debug 版本?你是否將發現的錯誤及時改正了?一你是否堅持徹底測試 即使耽誤了進度也在所不惜?你是否依靠...