oracle删除字段_探寻大表删除字段慢的原因

本文探讨了在Oracle数据库中删除大表字段导致的长时间执行及‘db file scattered read’等待事件。通过分析10046 trace文件,揭示了全表扫描、多块读取以及DDL操作的特性。文章提到了删除字段的不同策略,包括设置为UNUSED、逻辑删除、在线重定义以及CTAS重建表,并分享了实际操作中可能遇到的问题和解决方案。
摘要由CSDN通过智能技术生成

这是杂货铺的第403篇文章

《大表删除字段为何慢?》的案例中,提到删除一张大表的字段,产生了很多等待,但是测试环境模拟的现象,看起来和生产,略有区别。

由于生产环境,用的是DG架构,因此在数据库同事的协助下,利用DG备库snapshot的功能,在生产环境,真实操作了一次,虽然和主库操作,唯一不同的是,没有请求的压力,相当于停了应用,但还是能说明些问题。

整个删除操作,执行时间,大约是30分钟,通过10046的trace,看见等待事件,主要是下面这种,

b888d20ab2171229342caff819e49c75.png

从这段内容中,有几点值得说明,

1. db file scattered read

Oracle在执行全表扫描(Full Table Scan,FTS)或全索引扫描(Index Full San)时,为保障性能,尽量一次读取多个块,这称为Multi Block I/O,即多块读。每次执行Multi Block I/O,都会等待物理I/O结束,此时等待的,就是db file scattered read事件。这个等待事件包含三个参数&

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值