Oracle优化:大量数据插入或更新

最近遇到的一个面试题,印象很深记录如下:

面试官:现在有一张表数据量达很大,要把里面记录时间的那行更新到当前最新日期,每次更新都很卡,机器变慢影响业务,怎么优化。

我的想法是:大量的数据更新肯定会写记录,而大量的写记录又会触发lgwr,所以机器变卡的原因是内存暂满还有在写重做日记。如果操作是添加日志组或增大日志的大小,又或者调整SGA里面各种池的大小,其实也是没有用,顶多就是延迟发生故障。


所以只要跳过写记录那块,那么问题就可以根本解决。


一般数据库都是在归档模式下运行(Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里),跳过就要关闭归档模式,还有就是修改表在nologging状态下。这样两个状态下就可以不写日志,但是也是在万分确定不会出错的情况下才能使用。


不过这样操作,数据库就要关闭重启到mount的状态,再关闭归档,这样在生产库是不允许的,而且关闭归档是影响整个数据库的,其他业务也会陷入无法恢复的境地,整个数据库无法使用rman做增量备份,很多备份方案都会受到限制。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Knuuy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值