社区
Oracle
帖子详情
oracle删除大量数据后,变慢的问题
codecola
2011-06-14 04:42:03
我在oracle中对一个表进行删除操作,该表中至少有几百万条记录,每次删除几十万条记录,每1000条commit一次。
在删除的过程中和删除完成的一段时间内,会发生oracle响应非常慢的情况,无论是连接还是查询。
我该如何查找原因?
怎么解决?
...全文
1706
27
打赏
收藏
oracle删除大量数据后,变慢的问题
我在oracle中对一个表进行删除操作,该表中至少有几百万条记录,每次删除几十万条记录,每1000条commit一次。 在删除的过程中和删除完成的一段时间内,会发生oracle响应非常慢的情况,无论是连接还是查询。 我该如何查找原因? 怎么解决?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
27 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
codecola
2011-07-05
打赏
举报
回复
感谢各位大牛的回复!
有些方法可行,单比较麻烦。
因为数据清理工作没有时间上的限制,所以采用每删除一定量的数据就sleep一段时间,给数据库做维护工作的时间。这样做就不会导致高水位线的问题,只不过数据清理的时间会比较长。
amdgaming
2011-06-23
打赏
举报
回复
[Quote=引用 25 楼 bearfishshow 的回复:]
当使用delete进行删除数据时,对应表的高水位线并不会下降,也就是说当你查询时还是相当于在你之前的总记录数当中进行数据查询,所以会慢;我觉得这是一个原因!
同意楼上那些大牛的观点,可以采用分区表,然后直接truncate操作应该就能解决问题了;
[/Quote]
学习。
lzx313
2011-06-22
打赏
举报
回复
在网上百度了下,看到了这个帖子,不知道你是否试过?
http://www.chinabyte.com/biz/cbfwq/82/2679582.shtml
灰哥
2011-06-22
打赏
举报
回复
当使用delete进行删除数据时,对应表的高水位线并不会下降,也就是说当你查询时还是相当于在你之前的总记录数当中进行数据查询,所以会慢;我觉得这是一个原因!
同意楼上那些大牛的观点,可以采用分区表,然后直接truncate操作应该就能解决问题了;
codecola
2011-06-22
打赏
举报
回复
[Quote=引用 22 楼 lzx313 的回复:]
在网上百度了下,看到了这个帖子,不知道你是否试过?
http://www.chinabyte.com/biz/cbfwq/82/2679582.shtml
[/Quote]
我也是分段提交的,但测试来看性能与该帖子差距很大
zjwssg
2011-06-22
打赏
举报
回复
马上做一个系统信息收集
skyblueseal
2011-06-21
打赏
举报
回复
学习了
codecola
2011-06-21
打赏
举报
回复
[Quote=引用 12 楼 minitoy 的回复:]
如果表可以按时间分区的话,就可以直接truncate分区.
[/Quote]
分区比较麻烦,能够自动分区吗?
慢的原因是不是要写大量的undo和redo,以及索引重建上了?
psufnxk2008
2011-06-19
打赏
举报
回复
csdn中有位高手说between...and ...这个效率的问题,找不到他个帖子了.
jdsnhan
2011-06-17
打赏
举报
回复
[Quote=引用 12 楼 minitoy 的回复:]
如果表可以按时间分区的话,就可以直接truncate分区.
[/Quote]
同意这个观点。可以先对表进行分区处理,然后truncate分区
zhwh
2011-06-17
打赏
举报
回复
select sql_text,executions,buffer_gets,disk_reads from v$sql;
其中 cpu使用对应的是buffer_gets,磁盘io使用对应的是disk_reads.
biandongfeng
2011-06-16
打赏
举报
回复
alter table table_name shrink space;
biandongfeng
2011-06-16
打赏
举报
回复
alter table table_name deallocate;
刚查了一下 试下上面的语句
biandongfeng
2011-06-16
打赏
举报
回复
这个是没办法的事情,因为大量的删除操作导致这个表的高水位,看怎么把水位降下来
小灰狼W
2011-06-16
打赏
举报
回复
查一下等待事件
minitoy
2011-06-16
打赏
举报
回复
如果表可以按时间分区的话,就可以直接truncate分区.
codecola
2011-06-16
打赏
举报
回复
[Quote=引用 10 楼 codecola 的回复:]
引用 9 楼 superboy20071207 的回复:
建言删除时使用nologging关键字,不保留日志,能快一点
正准备这么试试呢。。。
[/Quote]
试验失败!
日志对性能影响很小。
2. 效率:9000条/秒(一开始能达到,性能很快会下降到9000条/分钟)
是oralce在重建索引而占用的大量的系统资源吗?
怎么查?
codecola
2011-06-16
打赏
举报
回复
[Quote=引用 9 楼 superboy20071207 的回复:]
建言删除时使用nologging关键字,不保留日志,能快一点
[/Quote]
正准备这么试试呢。。。
superboy20071207
2011-06-15
打赏
举报
回复
建言删除时使用nologging关键字,不保留日志,能快一点
zhwh
2011-06-15
打赏
举报
回复
在sqlplus下查询这几个视图或表就行了
加载更多回复(7)
Oracle
数据
表
大量
数据
删除
后查询
变慢
问题
本文探讨了
Oracle
数据
库中表空间过大导致查询效率降低的
问题
,介绍了如何通过释放多余表空间、重建索引以及使用特定SQL语句来提高查询速度的方法。
Oracle
表
删除
大量
数据
后查询
变慢
问题
当
Oracle
表
删除
大量
数据
后,即使表中仅剩少量记录,使用select count(*)查询速度仍可能很慢。这是因为表空间过大导致的。本文介绍通过alter table move释放表空间并重建索引的方法,以提高查询效率。
Oracle
表
删除
大量
数据
(千万)后查询
变慢
问题
本文介绍了
Oracle
数据
库中如何通过delete和truncate操作清理表空间,并详细解释了如何使用analyse table命令进行表分析,以提高查询效率。此外还讨论了解决因表空间过大导致查询缓慢的
问题
及重建索引的方法。
产业园区运营负责人如何利用知识图谱实现企业精准对接与协同?.docx
科易网基于40亿+科创知识图谱
数据
库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
研华网关ECU-1051搭建环境并运行python程序教程
研华网关ECU-1051搭建环境并运行python程序教程
Oracle
17,134
社区成员
55,258
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章