32. Steps to confgure a BATCHSQL mode

简单说明:

本博文介绍提升应用进程性能的批处理进程模式BATCHSQL,以及该模式下的其他配置参数

开启方法:

目标端应用进程打开BATCHSQL模式的配置语句:
  REPLICAT RGGTEST1
  USERID ggs, PASSWORD ggs
  DISCARDFILE /ggs/dirrpt/RGGTEST1.dsc, append, MEGABYTES 500
  ASSUMETARGETDEFS
  MAP SCOTT.*, TARGET SCOTT.*;
  BATCHSQL BATCHESPERQUEUE 100, OPSPERBATCH 200
  -- 该配置行就是打开BATCHSQL模式的配置语句
  -- 可以只使用BATCHSQL关键字开启该模式,而不进行其他配置

其他参数和注意简介:

默认情况下应用进程同一时间只会执行一条SQL,如同抽取进程一样
应用进程从trail文件中读取到SQL语句然后重构他们,当重构完成后,这些语句会应用到目标库
在这种情况下,应用进程要慢于抽取进程读取日志文件写入事务到trail文件的速度,延迟较大

OGG提供了BATCHSQL模式来优化该情况,该模式下对相同对象的相似SQL会触发批处理
在内存中生成批量处理语句并一次装入库中,对同一个表以相同的字段列表执行相同操作的SQL才会触发批处理

该模式非常适合100Bytes以内的小数据事务,Oracle官方建议该数量级的事务使用BATCHSQL模式可以减少归档的产生
当事务改变的规模超过5000Bytes,BATCHSQL模式的优势就会下降

该模式下应用进程在内存中缓存更多的SQL语句,需要更多的内存容量,以下参数控制缓存的SQL数量和内存使用:
BATCHESPERQUEUE
该参数控制保存在内存队列中的最大批处理数量
默认50Bytes,配置范围在1Byte到1000Bytes之间

BATCHTRANSOPS
该参数控制一个批次中批量提交的最大SQL操作数量
默认1000Bytes,配置范围在1Byte到100000Bytes之间

BYTESPERQUEUE
该参数控制用于队列分配的最大内存
默认20MB,配置范围在1MB到1GB之间

OPSPERBATCH
该参数控制一个批次批量操作的行的最大数量
默认1200Bytes,置范围在1Byte到100000Bytes之间

OPSPERQUEUE
该参数控制一个队列中所有批处理处理的最大行操作
默认1200Bytes,置范围在1Byte到100000Bytes之间

注意:
BATCHSQL模式下有内建异常处理功能,当一批中的SQL有一个执行失败时
整个批次回滚,并转换成普通模式再次执行,该容错机制是自动运行的
但是如果频繁的发生批处理失败回滚转化成普通模式再次执行,性能会急剧下降,也就是当前环境并不适合BATCHSQL模式

该异常处理功能可以继续配置BATCHERRORMODE参数,该参数和HANDLECOLLISSIONS参数功能相似:
当INSERT操作失败时,OGG转化成UPDATE操作,当DELETE操作失败时,OGG会忽略该操作

最好为行数据超过25KB的表、包含LONG或者LOB的表
以及主键之外包含多个唯一性约束的表创建专门的应用进程来开启BATCHSQL模式

[TOC]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值