Oracle 删除表分区


删除表分区(droppartition)
删除表分区包含两种操作,分别是:
Ø删除分区:altertable[tbname]droppartition[ptname] UPDATEGLOBALINDEXES;

Ø删除子分区:altertable[tbname]dropsubpartition[ptname]UPDATEGLOBALINDEXES;
除hash分区和hash子分区外,其它的分区格式都可以支持这项操作。例如,删除分区:

JSSWEB>selecttable_name,partition_name
2fromuser_tab_partitionswheretable_name='T_PARTITION_LIST';
TABLE_NAMEPARTITION_NAME

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

T_PARTITION_LISTT_LIST_P1

T_PARTITION_LISTT_LIST_P2

T_PARTITION_LISTT_LIST_P3

T_PARTITION_LISTT_LIST_PD
JSSWEB>altertablet_partition_listdroppartitiont_list_p2 UPDATEGLOBALINDEXES;

表已更改。
提示,droppartition时,该分区内存储的数据也将同时删除,例如:

SSWEB>insertintot_partition_listvalues(1,'a');..........
--插入一批记录,分布于当前各个分区..........
JSSWEB>commit;
提交完成。

JSSWEB>insertintot_partition_listvalues(1,'a');..........
--插入一批记录,分布于当前各个分区..........
JSSWEB>commit;
提交完成。
JSSWEB>select*fromt_partition_list;
IDNAME
------------------------------------------------------------

1a2b21a22b
--单独查询t_list_p3分区,当前有数据
JSSWEB>select*fromt_partition_listpartition(t_list_p3);

IDNAME
------------------------------------------------------------

21a

22b

--删除t_list_p3分区,数据会被同时删除
JSSWEB>altertablet_partition_listdroppartitiont_list_p3UPDATEGLOBALINDEXES;
表已更改。
JSSWEB>select*fromt_partition_listpartition(t_list_p3);select*fromt_partition_listpartition(t_list_p3)

*第1行出现错误:
ORA-02149:指定的分区不存在

--删除t_list_p3分区,数据会被同时删除
JSSWEB>altertablet_partition_listdroppartitiont_list_p3;
表已更改。
JSSWEB>select*fromt_partition_listpartition(t_list_p3);select*fromt_partition_listpartition(t_list_p3)

*第1行出现错误:
ORA-02149:指定的分区不存在
JSSWEB>select*fromt_partition_list;
IDNAME
------------------------------------------------------------

1a

2b

由于是ddl操作,这种删除也会是非常迅速的,因此如果你确认某个分区的数据都要被删除,使用droppartition会比delete更加高效。如果你的本意是希望删除掉指定的分区但保留数据,你应该使用mergepartition,后面也会讲到。
同样,如果你在执行该语句时没有指定updateindexes子句,也会导致glocal索引的失效,至于local索引嘛,删除分区时对应的索引分区会被同时删除,但其它分区的local索引不会受到影响。

附录:

drop partition就是清除分区及其数据和索引
truncated 就是先清除数据和索引但分区还在
性能我觉得应该没什么区别~看你的分区是否要保留了


优质内容筛选与推荐>>
1、把代码搬到Git Hub 吧(一)
2、Windows Azure Active Directory处理2000 亿个身份验证-连接全球的人、 数据和设备
3、Unable to write inside TEMP environment path
4、Spring Cloud架构教程 (五)服务网关(过滤器)
5、Magento支付宝接口 (magento alipay gateway) 购买突破百例


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号