oracle truncate很慢,ORACLEl数据库truncate分区表很慢问题 | 信春哥,系统稳,闭眼上线不回滚!...

本文讨论了在Oracle 11.2.0.4.0数据库中,TRUNCATE操作在30G的大表(按天分区)上运行缓慢的问题。主要等待事件包括log file switch, local write wait和enq: RO – fast object reuse。原因是磁盘写入速度不足和数据写进程数量过少。解决方案包括增加数据写进程数量(需要重启数据库)或者使用删除到回收站再创建表的方式代替TRUNCATE。" 133081238,20037236,前端编程的视觉导航特性,"['前端框架', 'HTML', 'CSS', 'JavaScript', '用户交互']
摘要由CSDN通过智能技术生成

在测试环境TRUNCATE一张按天分区的大表,数据量大概30G,速度非常慢,大概需要半个小时,检查发现等待的是log file switch事件。本案例数据库版本为11.2.0.4.0,操作系统为OEL 6.5。

SQL> select sql_id,OSUSER,MACHINE,TERMINAL,PROGRAM,EVENT,STATE from v$session where username='CHGSHS';

SQL_ID EVENT STATE

------------- ---------------------------------------- ----------

74jc7bvw5p1fg log file switch (checkpoint incomplete) WAITING

SQL> select SQL_TEXT from v$sqltext where sql_id='74jc7bvw5p1fg';

SQL_TEXT

----------------------------------------------------------------

truncate table ORD_ORD_BSC_M

过一会再次查询,等待事件变成了local write wait。

SQL> select sql_id,OSUSER,MACHINE,TERMINAL,PROGRAM,EVENT,STATE from v$session where username='CHGSHS';

SQL_ID EVENT STATE

------------- ---------------------------------------- ----------

74jc7bvw5p1fg local w

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值