oracle分割槽索引

2021-07-25 20:28:23 字數 1086 閱讀 5390

前兩天做乙個大的分割槽表的資料清理,split 分割槽後,忘記rebuild 索引,導致生產庫查詢的分割槽表非常的緩慢

對分割槽表某個分割槽做split ,如果沒有在alter table 語句最後加上update indexes,被**出的兩個分割槽的本地索引和整個表的全域性索引都會失效。

當根據索引字段查詢分割槽表資料時,如果某個分割槽的本地索引失效,那麼沒有索引失效的分割槽走本地索引查詢,索引失效的分割槽走全分割槽掃瞄,恰巧這個分割槽很大,直接拖累了整個查詢速度,當然如果知道自己要查詢的資料在具體哪個分割槽,指定分割槽查詢走本地索引,即便其他分割槽索引失效也不會影響到查詢分割槽。

在對分割槽表做 drop,truncate,split,merge,exchange 都會造成本地索引或全域性索引的失效,操作完了,記得要重建索引

當然在生產庫上 得加上update indexes 可以維護本地索引和全域性索引,update global indexes 只維護全域性索引。其中exchange 比較特別,即便加上update indexes 索引仍舊失效,千萬別忘了重建索引。

截斷分割槽

alter table tablename  truncate partition  pname  [drop storage | reuse storage] update  indexes;

刪除分割槽

alter table tablename  drop partition  pname  update global indexes;

**分割槽

alter table tablename split partition  pname1 at (split point) into (partition pname2, partition pname3);

重建全域性索引

alter index tablename rebuild [ online ] [ parallel value ]  [ nologging ] ;

重建分割槽索引

alter index tablename rebuild partition pname  [ online ] [ parallel value ]  [ nologging ] ;

線上重建索引大表一定要online ,以免dml阻塞

Oracle分割槽索引

表可以按 range hash list 分割槽,表分割槽後,其上的索引和普通表上的索引有所不同,oracle 對於分割槽表上的索引分為 2類,即區域性索引和全域性索引,下面分別對這 2種索引的特點和侷限性做個總結。1.區域性索引一定是分割槽索引,分割槽鍵等同於表的分割槽鍵,分割槽數等同於表的分割槽...

oracle 分割槽和分割槽索引

1 分割槽分類 range分割槽,hash分割槽,list分割槽,復合分割槽,間隔分割槽,system分割槽 2 range分割槽 區域分割槽,就是按照定義的區域進行分割槽 語法 create table partition by range field partition p1 values le...

Oracle 分割槽索引詳解

oracle 分割槽索引詳解 table index create unique bitmap index schema.index name on schema.table name tbl alias col asc desc index clauseindex attribs index cl...