开发者社区> 问答> 正文

关于oracle 中delete之后释放空间的问题 - oracle报错

首先感谢大家,嗯,我现在有一张表,2亿条记录,没做分区。。。空间不足要删除部分数据用了delete。

网上查到释放空间

alter table cbsd_log_t enable row movement;

alter table cbsd_log_t shrink space;

第二个语句执行特别慢,发帖的时候还还在卡着。。。。不知道是不是正常的。

还有网上说第一个语句执行后会造成"引用表XXX的对象(如存储过程、包、视图等)变为无效执行完成后,最好执行一下utlrp.sql来编译无效的对象。"这个命令直接执行就行吗。。

展开
收起
montos 2020-06-02 12:44:23 937 0
1 条回答
写回答
取消 提交回答
  • 该想一想去做分区或者分表了。######你要知道删除完还剩多少数据######停业务,执行 alter table xxxx move;再重建索引alter index xxxxx rebuild;######

    如果表正在被使用两个语句都会报错。

    执行玩后索引是不可用的,需要rebuild。alter index  XX rebuild online;

    执行完毕后建议alter table cbsd_log_t disable row movement;

    开启这个选项有少量性能损失

    2020-06-02 12:44:29
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PostgresChina2018_樊文凯_ORACLE数据库和应用异构迁移最佳实践 立即下载
PostgresChina2018_王帅_从Oracle到PostgreSQL的数据迁移 立即下载
Oracle云上最佳实践 立即下载

相关镜像