Oracle 索引的失效和重建

來源:互聯網
上載者:User

標籤:

查詢指定表的索引

SELECT T1.TABLE_NAME,T1.INDEX_NAME,T1.INDEX_TYPE,T1.UNIQUENESS,T1.TABLE_OWNER,T1.STATUS,T1.FUNCIDX_STATUSFROM ALL_INDEXES T1WHERE T1.TABLE_OWNER = UPPER(‘&Owner‘)AND T1.TABLE_NAME = UPPER(‘&Table_Name‘)ORDER BY T1.STATUS DESC;

 

普通索引失效,主鍵和唯一性索引除外(為保障資料的規範性)

SELECT ‘ALTER INDEX ‘ || TABLE_OWNER || ‘.‘ || INDEX_NAME || ‘ UNUSABLE;‘ UNUSABLE_INDEXFROM ALL_INDEXESWHERE TABLE_OWNER = UPPER(‘&Owner‘)AND TABLE_NAME = UPPER(‘&Table_Name‘)AND INDEX_TYPE = ‘NORMAL‘AND UNIQUENESS <> ‘UNIQUE‘;

 

並行(PARALLEL)重建索引,提升重建速度(在伺服器空閑時執行)

SELECT ‘ALTER INDEX ‘ || TABLE_OWNER || ‘.‘ || INDEX_NAME ||‘ REBUILD PARALLEL;‘FROM ALL_INDEXESWHERE TABLE_OWNER = UPPER(‘&Owner‘)AND TABLE_NAME = UPPER(‘&Table_Name‘)AND INDEX_TYPE = ‘NORMAL‘AND UNIQUENESS <> ‘UNIQUE‘AND STATUS = ‘UNUSABLE‘;

 

查詢索引的狀態和DEGREE並行度
注意:並行度預設設定為1,如果顯示為default,表示資料庫分配的cpu核心*2,重建完索引後並行度都改成1

SELECT ROWNUM,S.INDEX_NAME,S.INDEX_TYPE,S.TABLE_OWNER,S.TABLE_NAME,S.UNIQUENESS,S.STATUS,S.DEGREE,S.TABLESPACE_NAMEFROM ALL_INDEXES SWHERE TABLE_OWNER = UPPER(‘&Owner‘)AND TABLE_NAME = UPPER(‘&Table_Name‘);

 

將索引並行度不是1的還原回1

SELECT ‘ALTER INDEX ‘ || S.TABLE_OWNER || ‘.‘ || S.INDEX_NAME ||‘ NOPARALLEL;‘FROM ALL_INDEXES SWHERE TABLE_OWNER = UPPER(‘&Owner‘)AND TABLE_NAME = UPPER(‘&Table_Name‘)AND S.DEGREE <> 1;

 

Oracle 索引的失效和重建

聯繫我們

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

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

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.