暂无图片
Oracle 用存储过程来删除数据,一次性删除300万数据用时1小时20分钟,效率低吗?
我来答
分享
暂无图片 匿名用户
Oracle 用存储过程来删除数据,一次性删除300万数据用时1小时20分钟,效率低吗?

Oracle 用存储过程来删除数据,一次性删除300万数据用时1小时20分钟,效率低吗?

我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
dbtiger

很低了。

存储过程落地也是调用delete语句。而且一次大量delete通常要考虑好rede和undo,避免刷爆,非常危险的操作。。。

建议将需要的数据通过create table a1 as select * from a where xxx=ww;过滤并另存表,然后将原表truncate或者drop。
祝你成功!

暂无图片 评论
暂无图片 有用 1
打赏 0
暂无图片
Kubee

这速度感觉好慢喔

暂无图片 评论
暂无图片 有用 0
打赏 0
赵勇

从经验上看,挺慢的。但具体问题具体分析。基于真实的执行计划、资源开销和等待事件来分析,会更靠谱一些。

暂无图片 评论
暂无图片 有用 0
打赏 0
Thomas

不建议一次性,也就是写一条SQL删除300万记录。不如做个存储过程,里面放游标,将删除的数据再分解,比如删除100次,每次约3万记录,每次删除完就COMMIT,这样,可以避免将UNDO撑得太大。也就是说把一个批量删除细粒度化。

暂无图片 评论
暂无图片 有用 1
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
巡检发现最近几天归档没有备份
回答 2
从日志来看,在3点28分自动备份控制文件和spfile报错后,备份就终止了,并没有往下去备份归档日志。可以先将控制文件快照放到ASM中RMAN> CONFIGURE SNAP
expdp导出数据时报错
回答 3
已采纳
看看导出的gcdataimplog表中是不是有lob字段。
Oracle package中使用了全局变量的过程,怎么调试?
回答 1
已采纳
Oracle关于package的调试,墙裂推荐第三方工具pl/sqldeveloper,调式相当人性化。具体可以参考:https://www.csdn.net/tags/NtzaIg5sNDg2MzA
Oracle数据库中的受欢迎和不受欢迎值各是什么?
回答 2
已采纳
直方图中某个值的受欢迎程度会影响基数估值算法,具体如下:  受欢迎值:受欢迎值出现在多个桶的端点值,优化器通过检查某个值是否是桶的端点值来确定该值是否受欢迎,如果是,那么对于频率直
安装19C 空白 启动了service还是解决不了,怎么办?
回答 2
看一下是不是系统不兼容呢,19cWin系统只认证了8.1及以上的环境。
oracle的rman能按照单个数据用户来备份和恢复吗?
回答 2
已采纳
您好:OralceRMAN不能支持按用户级别的备份恢复,因为是基于数据块的备份操作,可支持数据库、表空间、数据文件、控制文件、归档文件及参数文件的备份恢复。如果有对用户级别备份恢复的需求,可在策略上考
ORACLE RAC 的ASM如何添加磁盘
回答 4
@章芋文检查步骤很重要,尤其是备份。我是刚接手这套库,之前不是我实施的,我也是看了之前的60raw.rules配置文件才想着这些步骤的。我只用过asmlib、udev的方式,这种裸设备没用过,所以不太
请教一下,有那位大神有没有遇到过这样的问题,一条UPDATAE语句,在一个恢复的库里执行特别快,在生产库上执行特别慢,得一个多小时,是啥原因导致的,有谁遇到过,
回答 2
建议可以看下执行计划,最好跑个10046事件看一下具体是什么原因导致一直在等待。
AWR分析报告问题求助:队列等待时间超过100s,平均等待时间超过100ms,建议针对该队列进行优化
回答 1
AWR报告应该是着重从等待事件和TOPSQL看问题
使用rman备份的RAC数据库 如何在单机上进行恢复测试
回答 2
已采纳
大部分步骤都一样,唯独如果使用asm,restor时需要设置setnewname,如果多的话可以源库select拼接为批量语句。示例如下:run{setnewnamefordatafile1to'';