全面學習分割槽表及分割槽索引(9)--刪除表分割槽

路途中的人2012發表於2018-01-19

刪除表分割槽(drop partition)

刪除表分割槽包含兩種操作,分別是:

Ø 刪除分割槽:alter table [tbname] drop partition [ptname];

Ø 刪除子分割槽:alter table [tbname] drop subpartition [ptname];

除hash分割槽和hash子分割槽外,其它的分割槽格式都可以支援這項操作。

例如,刪除分割槽:

JSSWEB> select table_name,partition_name

  2  from user_tab_partitions where table_name='T_PARTITION_LIST';

TABLE_NAME                     PARTITION_NAME

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

T_PARTITION_LIST               T_LIST_P1

T_PARTITION_LIST               T_LIST_P2

T_PARTITION_LIST               T_LIST_P3

T_PARTITION_LIST               T_LIST_PD

JSSWEB> alter table t_partition_list drop partition t_list_p2;

表已更改。

提示,drop partition時,該分割槽記憶體儲的資料也將同時刪除,例如:

JSSWEB> insert into t_partition_list values (1,'a');

..........

--插入一批記錄,分佈於當前各個分割槽

..........

JSSWEB> commit;

提交完成。

JSSWEB> select *from t_partition_list;

        ID NAME

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

         1 a

         2 b

        21 a

        22 b

--單獨查詢t_list_p3分割槽,當前有資料

JSSWEB> select *from t_partition_list partition(t_list_p3);

        ID NAME

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

        21 a

        22 b

--刪除t_list_p3分割槽,資料會被同時刪除

JSSWEB> alter table t_partition_list drop partition t_list_p3;

表已更改。

JSSWEB> select *from t_partition_list partition(t_list_p3);

select *from t_partition_list partition(t_list_p3)

                                        *

第 1 行出現錯誤:

ORA-02149: 指定的分割槽不存在

JSSWEB> select *from t_partition_list;

        ID NAME

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

         1 a

         2 b

由於是ddl操作,這種刪除也會是非常迅速的,因此如果你確認某個分割槽的資料都要被刪除,使用drop partition會比delete更加高效。如果你的本意是希望刪除掉指定的分割槽但保留資料,你應該使用merge partition,後面也會講到。

同樣,如果你在執行該語句時沒有指定update indexes子句,也會導致glocal索引的失效,至於local索引嘛,刪除分割槽時對應的索引分割槽會被同時刪除,但其它分割槽的local索引不會受到影響。

=====================================

檢視前面的連載:

(8)--增加和收縮表分割槽

(7)--怎樣管理

(6)--建立range-list組合分割槽

(5)--建立range-hash組合分割槽(1)

(4)--建立list分割槽

(3)--建立hash分割槽

(2)--建立range分割槽

(1)--前言

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29067253/viewspace-2150329/,如需轉載,請註明出處,否則將追究法律責任。

相關文章