Oracle重建索引

2021-05-25 21:48:18 字數 447 閱讀 4856

如果表更新比較頻繁,那麼在索引中刪除標示會越來越多,這時索引的查詢效率必然降低,所以我們應該定期重建索引來消除索引中這些刪除標記。

一般不會選擇先刪除索引,然後再重新建立索引,而是rebuild索引。在rebuild期間,使用者還可以使用原來的索引,並且rebuild新的索引時也會利用原來的索引資訊,這樣重建索引會快一些。

索引在重建時,查詢仍然可以使用舊索引。實際上,oracle在rebuild時,在建立新索引過程中,並不會刪除舊索引,直到新索引rebuild成功。從這點可以知道rebuild比刪除重建的乙個好處是不會影響原有的sql查詢,但也正由於此,用rebuild方式建立索引需要相應表空間的空閒空間是刪除重建方式的2倍。

在oracle裡大量刪除記錄後,表和索引裡占用的資料塊空間並沒有釋放。重建索引可以釋放已刪除記錄索引占用的資料塊空間。重建索引不僅能增加索引表空間空閒空間大小,還能夠提高查詢效能。

參考:

ORACLE 索引批量重建

按使用者批量重建索引 按使用者將此使用者下面非臨時表上面的索引全部重建,此過程建議在 sys使用者下面執行 create or replace procedure batch rebuild index user name in varchar2 is s sql varchar2 500 acco...

重建ORACLE資料庫索引

declare str varchar2 400 begin 重建oracle索引 for tmp idx in select tablespace name,owner,table name,index name from all indexes where owner hnacms and te...

oracle 索引失效 建立及重建

兩三個月沒有做資料分析了,今天一分析,竟然發現很多索引 約30 失效。失效原因大致有以下幾種 在sql loader 載入過程中會維護索引,由於資料量比較大,在sql loader 載入過程中出現異常情況,導致oracle 來不及維護索引,導致索引處於失效狀態,影響查詢和載入。異常情況主要有 在載入...