暂无图片
Oracle update如何减少redo的产生?
我来答
分享
暂无图片 匿名用户
Oracle update如何减少redo的产生?

Oracle update如何减少redo的产生?

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

在SQL语句级别加并行参数控制,可以大幅减少redo的产生

update /*+ parallel(4) */ emp set ...


不要改transaction_auditing这个参数,只是为了减少redo的生成量而去调参数影响太大,而且这个参数在大量的小事务的情况下将产生不可忽略的日志生成量的差异。


暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
吾喾

归档模式下必须产生重做日志
但是可以通过设置参数产生尽量少的日志
比如修改transaction_auditing参数为FALSE等等

暂无图片 评论
暂无图片 有用 0
打赏 0
薛晓刚

如果你用全局临时表可以减少的。

但是本质上,还是update的行数,这个最关键。

暂无图片 评论
暂无图片 有用 0
打赏 0
刘浩

可以用这个SQL去做测试,这个SQL可以检测你每次update/insert/delete产生的redo日志量

select a.NAME,b.VALUE from v$statname a,v$mystat b

where a.STATISTIC#=b.STATISTIC#

and a.NAME='redo size';

注意,只能在一个会话窗口测试,执行上方语句记录最初的日志量,update完成后,再执行这个SQL查最新的redo,用最新的redo减去最初的日志量,就能测试出来。

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


请输入正文
提交