在Oracle9i中,如何監視索引並清除監視資訊
對於DML操作來說,索引對於資料庫是一個效能負擔.如果索引沒有被有效的使用,那麼其存在性就值得從新考慮.
從Oracle9i開始,Oracle允許你監視索引的使用
對於DML操作來說,索引對於資料庫是一個效能負擔.如果索引沒有被有效的使用,那麼其存在性就值得從新考慮.
1. 從Oracle9i開始,Oracle允許你監視索引的使用:
SQL> connect scott/tiger@conner Connected to Oracle9i Enterprise Edition Release 9.2.0.4.0 Connected as scott SQL> select index_name from user_indexes; INDEX_NAME ------------------------------ PK_DEPT PK_EMP 開始監視pk_dept索引: SQL> alter index pk_dept monitoring usage; Index altered 在此過程中,如果查詢使用索引,將會記錄下來: SQL> select * from dept where deptno=10; DEPTNO DNAME LOC ------ -------------- ------------- 10 ACCOUNTING NEW YORK 停止監視: SQL> alter index pk_dept nomonitoring usage; Index altered 查詢索引使用情況,YES表示在監視過程中索引被使用到: SQL> select * from v$object_usage; INDEX_NAME TABLE_NAME MONITORING USED START_MONITORING END_MONITORING ----------------- ------------------ ---------- ---- ------------------- ------------------- PK_DEPT DEPT NO YES 10/28/2004 10:55:19 10/28/2004 10:55:47 SQL> |
2.Oracle9i的Bug
在9205之前,如果你不慎監控了SYS.I_OBJAUTH1索引,並且不幸在重起資料庫之前沒有停止它,那麼你的資料庫將會無法啟動,並且
不會給出任何錯誤資訊。
以下這條簡單的語句可以輕易再現這個問題:
'ALTER INDEX SYS.I_OBJAUTH1 MONITORING USAGE'
如果你有了足夠好的備份(嚴重警告,請不要拿你的生產資料庫進行測試),你可以嘗試一下:
|
此時,資料庫掛起,而且不會有任何提示,在alert
[oracle@jumper bdump]$ tail -f alert_conner.log |
然後資料庫將會停在此處。
如果不知道此bug存在,你可能會一籌莫展的。
現在你能做的就是從備份中恢復,或者升級。
[oracle@jumper oradata]$ rm -rf conner |
3. 在特殊的情況下,你可能需要清除這個v$object_usage檢視中的資訊.
Oracle的說法是,在下一次收集該物件的索引使用情況時會自動覆蓋上一次的資訊,不提供清除手段.
稍微研究了一下.
v$object_usage是基於以下基表建立起來的:
create or replace view v$object_usage |
注意到v$object_usage關鍵資訊來源於OBJECT_USAGE表.
另外我們可以注意一下,此處v$object_usage的查詢基於userenv('SCHEMAID')建立.
所以以不同使用者登入,你是無法看到其他使用者的索引監視資訊的,即使是dba,但是可以從object_usage表中得到.
SQL> select * from v$object_usage; INDEX_NAME TABLE_NAME MON USE START_MONITORING END_MONITORING ------------------------------ ------------------------------ --- --- ------------------- ------------------- PK_DEPT DEPT NO YES 10/28/2004 10:55:19 10/28/2004 10:55:47 SQL> select * from object_usage; select * from object_usage * ERROR at line 1: ORA-00942: table or view does not exist SQL> connect /as sysdba Connected. SQL> / OBJ# FLAGS START_MONITORING END_MONITORING ---------- ---------- ------------------- ------------------- 6288 1 10/28/2004 10:55:19 10/28/2004 10:55:47 |
實際上我們清除了object_usage表的記錄,實際上也就清空了v$object_usage的資訊.
|
此操作對資料庫沒有潛在的影響,但是請謹慎使用.作為實驗目的提供.
本文作者:
eygle,Oracle技術關注者,來自中國最大的Oracle技術論壇itpub.
www.eygle.com是作者的個人站點.你可通過Guoqiang.Gai@gmail.com來聯絡作者.歡迎技術探討交流以及連結交換.
原文出處:
http://www.eygle.com/internal/How.to.Monitor.Index.and.How.to.Clean.out.v$object_usage.htm
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/764/viewspace-120512/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle9i如何監視索引並清除監視資訊(轉)Oracle索引
- 在oracle中監視索引的使用情況Oracle索引
- Oracle“並行執行”——監控檢視Oracle並行
- Redis Manager 如何檢視監控Redis
- 視訊監控系統的設計
- YouTube 遭黑客破壞並清除大量流行音樂視訊黑客
- 在監控中注視:監控題材遊戲的社交呈現遊戲
- zabbix清除歷史監控資料
- 024 監視簡寫
- vue 監視屬性Vue
- 監視和管理TomcatTomcat
- 資料庫監視器(SQL Server Profilter)資料庫SQLServerFilter
- 016、Vue3+TypeScript基礎,使用watch監視和結束監視VueTypeScript
- 怎樣清除v$archived_log檢視中的過期資訊Hive
- 2021年煤礦安全監測監控多少錢及煤礦安全監測監控實操考試視訊
- 2021年監理工程師講座視訊_全套視訊課程真題解析工程師
- ZooKeeper 監視點詳解
- Linux下串列埠監視Linux串列埠
- synchronized的monitor監視器synchronized
- Java的物件監視器Java物件
- 監視磁碟使用情況
- 從海康威視看視訊監控行業產業鏈構成行業產業
- 在Linux中,如何檢視當前系統的版本資訊?Linux
- mongodb 如何檢視索引MongoDB索引
- [java]深入剖析Java效能監控調優視訊教程Java
- Hystrix 監控視覺化頁面——Dashboard 流監控視覺化
- 流媒體調研:雲端視訊監控與視覺化對講視覺化
- Linux中監視日誌檔案常用的命令!Linux
- Mysql效能監控視覺化MySql視覺化
- 黑客黑掉監控攝像機並公佈荷蘭女子手球隊裸體視訊黑客
- 短視訊平臺中明星賬號氾濫 需加強對網路短視訊平臺的監管力度
- 在Linux中,如何監控系統資源使用情況?Linux
- 在Linux中,如何進行系統資源的監控?Linux
- React Native Debugger在Chrome中檢視network資訊React NativeChrome
- Microsoft成功在管理套件中新增網路效能監視器ROS套件
- java鍵盤監聽之視窗監聽的實現Java
- 尚矽谷監控告警系統(Zabbix)視訊教程釋出
- windows10怎麼檢視監聽埠_windows10檢視監聽埠的方法Windows