oracle表删除大量数据保留前3个月怎么删?
表数据大概 4亿
我来答
添加附件
收藏
复制链接
微信扫码分享
在小程序上查看
分享
添加附件
问题补充
3条回答
默认
最新
可以分两种情况,看你要保留的数据多还是要删除的数据多。
1、保留数据远大于删除数据,分批次进行delete操作
2、保留数据远小于删除数据,使用rename+ctas的方式,将保留数据捞出来即可。
具体根据实际情况来选择,如果一半一半,那我建议使用 rename+ctas。
如果该表需要频繁进行回收数据的话,那么建议转为分区表,通过对分区进行数据删除会更加方便快捷。
希望能帮助到你~
评论
有用 3
楼上把我想说的都说了。。。
我也建议create table as留下你要保留的数据,然后把表重命名,
另外就是要注意索引和分区是否要和之前保持一致了
评论
有用 1闲时暂停业务和定时任务,这才几亿数据,1分钟以内可以完成所有命令执行
之前用过一种方式
用ctas方式创建表,truncate删除旧表数据,再把需要数据插进需要表中;
truncate比delete速度快些,最主要还是要看数据量,如果数据量太大可以在insert into时开并行和nologging
评论
有用 0回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏


