Oracle監控索引使用
Oracle提供一個監控索引的方法
來確定索引是否被使用
如果索引沒有被使用
就可以刪除它們以減少不必要的語句的開銷
因為表上的大量不必要的索引可能會降低DML語句的性能
給數據庫性能產生壓力
所以生產環境上
以根據業務增長情況定期監控
分析數據庫索引的使用
特別是一些大表上的索引
提升數據庫事務提交的性能
查看表上的索引
SQL> Selectindex_name
table_name
num_rows From dba_indexes i Where i
table_name =
WEBSITE_VIEW_TB
;
INDEX_NAME TABLE_NAME NUM_ROWS
CURRTIME_IDX WEBSITE_VIEW_TB
ORDERNO_IDX WEBSITE_VIEW_TB
ORDERSOURCE_IDX WEBSITE_VIEW_TB
開啟索引監控
SQL> ALTER INDEX CURRTIME_IDX MONITORING USAGE;
Index altered
查看索引監控
SQL> Select * From v$object_usage;
INDEX_NAME TABLE_NAME MONITORING USED START_MONITORING END_MONITORING
CURRTIME_IDX WEBSITE_VIEW_TB YES NO
/
/
:
:
注意
如果開啟了索引監控功能
用v$object_usage視圖可以查看正在被監控的索引記錄
USED列表示在開啟索引監控過程中索引是否被使用
MONITORING列表示是否開啟了索引監控
START_MONITORING表示開啟索引監控的開始時間
END_MONITORING表示開啟索引監控的結束時間
執行查詢語句
使用被監控的索引
SQL> Select Count(*) From log
WEBSITE_VIEW_TB t
Where t
currtime between to_date(
yyyy
mm
dd
)And to_date(
yyyy
mm
dd
);
COUNT(*)
可以看到記錄的USED列值變成了YES
表示索引被使用過
SQL> Select * From v$object_usage;
INDEX_NAME TABLE_NAME MONITORING USED START_MONITORING END_MONITORING
CURRTIME_IDX WEBSITE_VIEW_TB YES YES
/
/
:
:
分析完畢後
關閉索引監控
因為監控也會占用一定的資源
SQL> ALTER INDEX CURRTIME_IDX NOMONITORING USAGE;
Index altered
可以看到MONITORING列變為NO
END_MONITORING列被填充
索引停止監控
SQL> Select * From v$object_usage;
INDEX_NAME TABLE_NAME MONITORING USED START_MONITORING END_MONITORING
CURRTIME_IDX WEBSITE_VIEW_TB NO YES
/
/
:
:
/
/
:
:
再次執行查詢
監控記錄無變化
SQL> Select Count(*) From log
WEBSITE_VIEW_TB t
Where t
currtime between to_date(
yyyy
mm
dd
) And to_date(
yyyy
mm
dd
);
COUNT(*)
SQL> Select * From v$object_usage;
INDEX_NAME TABLE_NAME MONITORING USED START_MONITORING END_MONITORING
CURRTIME_IDX WEBSITE_VIEW_TB NO YES
/
/
:
:
/
/
:
:
再次開啟索引監控
相應監控記錄值又發生了變化
SQL> ALTER INDEX CURRTIME_IDX MONITORING USAGE;
Index altered
SQL> Select * From v$object_usage;
INDEX_NAME TABLE_NAME MONITORING USED START_MONITORING END_MONITORING
CURRTIME_IDX WEBSITE_VIEW_TB YES NO
/
/
:
:
總結
雖然v$object_usage表能記錄索引監控和使用的狀態
但它不能統計索引被使用的次數和頻率
只記錄了在開啟索引監控的時間段索引是否被使用過
這一點要值的注意
From:http://tw.wingwit.com/Article/program/Oracle/201311/19069.html