首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

識別並移除未被使用的索引

     編輯:Oracle 資料庫基礎

存在卻未被使用的索引會拖慢 DML(INSERT/UPDATE/DELETE)效能,因每次資料異動都需同步維護索引結構。Oracle 9i 引入索引監控功能,讓 DBA 能精準找出並清理這些冗餘索引。

啟用索引監控

執行下列 Script 對所有非系統索引開啟監控:

SET PAGES 999
SET HEADING OFF
SPOOL run_monitor.sql
SELECT 'ALTER INDEX ' || owner || '.' || index_name || ' MONITORING USAGE;'
FROM dba_indexes
WHERE owner NOT IN ('SYS','SYSTEM','PERFSTAT');
SPOOL OFF
@run_monitor

查詢使用狀況

待核心業務 SQL 執行一段時間後,查詢 V$OBJECT_USAGE 視圖:

SELECT index_name, table_name, monitoring, used
FROM v$object_usage;

USED 欄位為 NO 即代表該索引在監控期間未被任何查詢使用,可評估移除以降低維護成本。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved