zoukankan      html  css  js  c++  java
  • ORACLE删除分区

    业务需求:定期删除表中三个月之前的数据

    说明:由于表采取一个月一个分区的设计,所以删除三个月之前的数据也就是删除三个月之前的分区。但需要注意的是删除分区后全局索引会失效,而本地local索引不会受到影响。

    删除分区的语法:

    ALTER TABLE TABLE_NAME TRUNCATE PARTITION (PARTITION_NAME);

    假如表名是:T_GOODS_RECORD_DETAIL

    需要删除的分区分别是:PAR_G001,PAR_G002。

    则删除分区的SQL:

    ALTER TABLE T_GOODS_RECORD_DETAIL TRUNCATE PARTITION PAR_G001;--可以不带括号
    ALTER TABLE T_GOODS_RECORD_DETAIL TRUNCATE PARTITION (PAR_G002);

    一般表的主键ID是全局索引,所以在删除分区后需要维护全局索引,SQL如下:

    ALTER INDEX 索引名 REBUILD ONLINE;
    --假如索引是IDX_GOODS_ID,则sql语句为:
    ALTER INDEX IDX_GOODS_ID REBUILD ONLINE;

    也可以在删除分区的时候就维护索引,SQL是:

    ALTER TABLE T_GOODS_RECORD_DETAIL TRUNCATE PARTITION (PAR_G001) UPDATE GLOBAL INDEX;

     但是在程序中rebuild索引的时候一定在所有分区都删除完之后再操作。因为如果表的数据量太大的话rebuild索引会非常耗时!!

  • 相关阅读:
    css属性设置
    自由从摇篮开始 ——杨支柱
    提醒幸福
    随记
    那些回不去的年少时光(桐华)
    Javascript 与正则表达式
    XmlHttpRequest对象的获取及相关操作
    CSS的4种引入方式及优先级
    c#textBox控件限制只允许输入数字及小数点,是否为空
    c# 循环界面控件
  • 原文地址:https://www.cnblogs.com/whx20100101/p/10423216.html
Copyright © 2011-2022 走看看