全面學習分割槽表及分割槽索引(16)--增加和刪除索引分割槽
從本節開始,介紹索引分割槽的管理操作~~
1、增加索引分割槽(Adding Index Partitions)
從語法上來講,增加索引分割槽與增加表分割槽沒有什麼實際性差別,將table換成index即可:
Alter index idxname add partition ptname tbs_clause;
需要注意一點add partition只能用於hash的global索引(如果你想為range型別的索引增加分割槽,不要用add,split也許能幫你實際你的需求),並且add partition無法新增local索引分割槽,因為local分割槽是由索引所在基表來維護的。
下面舉個操作的例子,還記的我們前面演示建立hash分割槽的時候建立的索引嗎,這裡就以它為例吧:
JSSWEB> select partition_name,tablespace_name from user_ind_partitions
2 where index_name='IDX_PART_HASH_ID';
PARTITION_NAME TABLESPACE_NAME
------------------------------ ------------------------------
SYS_P113 TBSPART01
SYS_P114 TBSPART02
SYS_P115 TBSPART03
JSSWEB> alter index idx_part_hash_id add partition i_hash_id_p4 tablespace tbspart04;
索引已更改。
JSSWEB> select partition_name,tablespace_name from user_ind_partitions
2 where index_name='IDX_PART_HASH_ID';
PARTITION_NAME TABLESPACE_NAME
------------------------------ ------------------------------
I_HASH_ID_P4 TBSPART04
SYS_P113 TBSPART01
SYS_P114 TBSPART02
SYS_P115 TBSPART03
看看,就是這麼簡單。
2、刪除索引分割槽(Dropping Index Partitions)
Drop partition只能操作global索引的range分割槽,語法也很簡單:
Alter index idxname drop partition ptname;
看起來很簡單對吧,但是,需要注意,索引必須擁有一個maxvalue的分割槽,該分割槽無法刪除。
另外,如果刪除的索引分割槽中包含資料,分割槽被刪除後,會造成相鄰的higher分割槽失效,需要手工編譯!這個其實很容易理解,索引中資料都是經過排序的,我們drop partition刪除的只是分割槽,但其對應的索引資料還需要有地兒存在行啊(不然索引啟不就不準確了),於是就只好儲存到比它更高區間值的索引區分裡去了,那個分割槽莫名其妙多了資料,自然狀態就為不可用了。
舉個例子:
JSSWEB> select partition_name,high_value,tablespace_name,status from user_ind_partitions
2 where index_name='IDX_PART_RANGE_ID';
PARTITION_NAME HIGH_VALUE TABLESPACE_NAME STATUS
-------------------- --------------- -------------------- --------
I_RANGE_P1 10 TBSPART01 USABLE
I_RANGE_P2 40 TBSPART02 USABLE
I_RANGE_PMAX MAXVALUE TBSPART03 USABLE
向表中插入幾條記錄:
JSSWEB> insert into t_partition_range values (8,'a');
已建立 1 行。
JSSWEB> insert into t_partition_range values (9,'b');
已建立 1 行。
JSSWEB> commit;
提交完成。
執行刪除操作
JSSWEB> alter index idx_part_range_id drop partition i_range_p1;
索引已更改。
JSSWEB> select partition_name,high_value,tablespace_name,status from user_ind_partitions
2 where index_name='IDX_PART_RANGE_ID';
PARTITION_NAME HIGH_VALUE TABLESPACE_NAME STATUS
-------------------- --------------- -------------------- --------
I_RANGE_P2 40 TBSPART02 UNUSABLE
I_RANGE_PMAX MAXVALUE TBSPART03 USABLE
於是,i_range_p2分割槽就unusable了,繼續往下看吧,後面要講如何重編譯索引分割槽了。
檢視前面的連載:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-324448/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 全面學習分割槽表及分割槽索引(9)--刪除表分割槽索引
- 全面學習分割槽表及分割槽索引(8)--增加和收縮表分割槽索引
- 全面學習分割槽表及分割槽索引(10)--交換分割槽索引
- 全面學習分割槽表及分割槽索引(13)--分隔表分割槽索引
- 全面學習分割槽表及分割槽索引(1)索引
- 全面學習分割槽表及分割槽索引(17)--其它索引分割槽管理操作索引
- 全面學習分割槽表及分割槽索引(11)--合併表分割槽索引
- 全面學習分割槽表及分割槽索引(12)--修改list表分割槽索引
- 全面學習分割槽表及分割槽索引(15)--修改表分割槽屬性和模板索引
- 【學習筆記】分割槽表和分割槽索引——管理索引分割槽(四)筆記索引
- 全面學習分割槽表及分割槽索引(7)--怎樣管理索引
- 深入學習Oracle分割槽表及分割槽索引Oracle索引
- 深入學習分割槽表及分割槽索引(1)索引
- 全面認識oracle分割槽表及分割槽索引Oracle索引
- 全面學習分割槽表及分割槽索引(6)--建立range-list組合分割槽索引
- Oracle分割槽表及分割槽索引Oracle索引
- 學習筆記】分割槽表和分割槽索引——新增表分割槽(二)筆記索引
- 全面學習分割槽表及分割槽索引(7)--怎樣管理(續)索引
- 分割槽表及分割槽索引建立示例索引
- 【三思筆記】 全面學習Oracle分割槽表及分割槽索引筆記Oracle索引
- Oracle帶區域性分割槽索引的分割槽表刪除舊分割槽新增新分割槽Oracle索引
- 【學習筆記】分割槽表和分割槽索引——分割槽表的其他管理(三)筆記索引
- 全面學習分割槽表及分割槽索引(14)--截斷、移動和重新命名索引
- 【學習筆記】分割槽表和分割槽索引——概念部分(一)筆記索引
- 深入學習分割槽表及分割槽索引(5)--建立range-hash組合分割槽(續)索引
- 分割槽表、分割槽索引和全域性索引部分總結索引
- 簡單ORACLE分割槽表、分割槽索引Oracle索引
- rebuild分割槽表分割槽索引的方法Rebuild索引
- 分割槽表分割槽索引查詢效率探究索引
- 全域性分割槽索引和區域性分割槽索引索引
- oracle分割槽partition及分割槽索引partition index(一)Oracle索引Index
- 關於分割槽表和分割槽索引(About Partitioned Tables and Indexes)索引Index
- 【實驗】【PARTITION】RANGE分割槽表刪除分割槽
- Oracle分割槽表基礎運維-06分割槽表索引Oracle運維索引
- 分割槽索引學習筆記索引筆記
- Oracle索引分割槽Oracle索引
- oracle 針對普通表的索引分割槽及10g新增hash 索引分割槽Oracle索引
- 刪除分割槽需要更新全域性索引索引