oracle上亿表海量数据进行大批量数据删除有什么好的解决方案

 我来答
greystar_cn
2018-07-05 · 知道合伙人软件行家
greystar_cn
知道合伙人软件行家
采纳数:16407 获赞数:17260
本人主要从事.NET C#方向的技术开发工作,具有10多年的各类架构开发工作经验。

向TA提问 私信TA
展开全部
以下纯属个人意见,请根据实际情况判断
(1)省下的数据量如果不大,那么可以考虑建立一张临时表,将需要保留的数据临时灌过去,然后truncate该表,然后再把数据灌回来。也可以考虑drop表,然后另外一张表改名,不过这样可能会有很多的后续操作,比如索引的建立等等,因此一般不用drop操作。
(2)上亿的数据,应该有分区吧,如果可能的话,按照分区truncate,这样也可以。
(3)实在不能truncate,只能delete那么建议找个字段循环删除提交,每次不能太多,最好保持在5万以下(根据实际情况具体判断),毕竟delete是最消耗资源的dml语句。
(4)如果可能的话,不要同一时间操作,分批操作,这样能减少一部分数据库负载压力(特别是undo)。
(5)一定要闲时操作,因为delete消耗资源比较多,会使数据库变慢。
壹寰(深圳)科技文化有限公司
2021-03-27 广告
不同公司提供的方案也不一样。以上回答如果还觉得不够详细,可以来咨询下壹寰(深圳)科技文化有限公司。91数据恢复是壹寰(深圳)科技文化有限公司旗下专业数据恢复品牌,91数据恢复专注于勒索病毒数据恢复、勒索病毒数据修复、数据库修复、数据库解密恢... 点击进入详情页
本回答由壹寰(深圳)科技文化有限公司提供
情又独中
2017-01-16 · TA获得超过1032个赞
知道小有建树答主
回答量:1220
采纳率:100%
帮助的人:825万
展开全部
如果是按时间删除,建议分区,然后truncate 分区表
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wumingchenxin
2017-01-20 · TA获得超过1271个赞
知道大有可为答主
回答量:1491
采纳率:87%
帮助的人:238万
展开全部
如果是全表删除,就用truncate,
如果是行级删除,那最好对要查询的字段进行索引。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式