程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> Oracle監控索引怎麼使用

Oracle監控索引怎麼使用

編輯:關於Oracle數據庫

    Oracle監控索引使用

      Oracle提供一個監控索引的方法,來確定索引是否被使用。如果索引沒有被使用,就可以刪除它們以減少不必要的語句的開銷。因為表上的大量不必要的索引可能會降低DML語句的性能,給數據庫性能產生壓力。所以生產環境上,以根據業務增長情況定期監控、分析數據庫索引的使用,特別是一些大表上的索引,提升數據庫事務提交的性能。   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 --查看表上的索引 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                  79284331 ORDERNO_IDX                    WEBSITE_VIEW_TB                   2021984 ORDERSOURCE_IDX                WEBSITE_VIEW_TB                    938174   --開啟索引監控 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     08/20/2013 14:19:48

     

      注意: 如果開啟了索引監控功能,用v$object_usage視圖可以查看正在被監控的索引記錄,USED列表示在開啟索引監控過程中索引是否被使用,MONITORING列表示是否開啟了索引監控,START_MONITORING表示開啟索引監控的開始時間,END_MONITORING表示開啟索引監控的結束時間     1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 --執行查詢語句,使用被監控的索引 SQL> Select Count(*) From log.WEBSITE_VIEW_TB t   2 Where t.currtime between to_date('2013-1-27','yyyy-mm-dd')And to_date('2013-1-28','yyyy-mm-dd');     COUNT(*) ----------     750603   --可以看到記錄的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       08/20/2013 14:19:48   --分析完畢後,關閉索引監控,因為監控也會占用一定的資源 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      08/20/2013 14:19:48      08/20/2013 14:32:18   --再次執行查詢,監控記錄無變化 SQL> Select Count(*) From log.WEBSITE_VIEW_TB t   2 Where t.currtime between to_date('2013-1-27','yyyy-mm-dd') And to_date('2013-1-28','yyyy-mm-dd');     COUNT(*) ----------     750603   SQL> Select * From v$object_usage;   INDEX_NAME                     TABLE_NAME                     MONITORING USED  START_MONITORING    END_MONITORING -----------------------------------------------------------------     -------------------  --------   -------------------------------  --------------------------- CURRTIME_IDX                   WEBSITE_VIEW_TB                NO           YES      08/20/2013 14:19:48      08/20/2013 14:32:18   --再次開啟索引監控,相應監控記錄值又發生了變化 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  08/20/2013 14:34:15

     總結:

    雖然v$object_usage表能記錄索引監控和使用的狀態,但它不能統計索引被使用的次數和頻率,只記錄了在開啟索引監控的時間段索引是否被使用過,這一點要值的注意。

     

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved