尋找沒有使用的索引

來源:互聯網
上載者:User

那些存在但是沒有使用的索引是以個導致DML語言執行效率低下的嚴重問題,所有的 SQL語句如:INSERTS、UPDATES、和DELETES當它們要更新表中含有很多索引的行時將運行得很慢。ORACLE專業人士看到一列應用到SQL查詢語句的WHERE語句時將會重新設定索引,這有可能使得SQL語句運行更快。ORACLE提供的索引功能可能會重新設定索引到這些表中的列,這種重新設定的索引將削弱裝載ORACLE自關聯表的執行效率。在ORACLE9i前,沒有辦法表示哪些SQL查詢語句沒有使用的索引。現在我們通過ORACLE9i提供的方法可以找到和刪除這些沒有使用的索引。ORACLE9i提供一個工具讓你使用ALTER INDEX 命令來監控索引使用方式。你可以定位和尋找那些沒有使用的索引然後從資料庫中刪除。

下面一段代碼將開啟對系統中使用的索引的監控。

Set pages 999;

Set heading off;

Spool run_monitor.sql

Select

‘alter index ‘||owner||’.’||index_name||’ monitoring usage;’

from

   dba_indexes

where

   ower not in (‘SYS’,’SYSTEM’,’PERFSTAT’)

;

spool off;

@run_monitor

等到這些重要的SQL在資料庫中執行完畢,查尋新的V$OBJECT_USAGE 視圖

select

index_name,

table_name,

mon,

used

from

   v$object_usage;

如下所示,我們可以看到V$OBJECT_USAGE中有一列聲明為USED。它可以設定成YES或者NO,它不會告訴你ORACLE使用這個索引要多少時間,但是這個工具有利於來研究不使用的索引。

INDEX_NAME                        TABLE_NAME   MON     USED

---------------                           -------------------   ---------    ---------

CUSTOMER_LAST_NAME_IDX         CUSTOMER     YES      NO



相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。