全部博文(389)
分类: Sybase
2013-09-04 17:30:09
goldengate BATCHSQL设置
通过在replicat使用batchsql来把相同的语句作为一批处理,而不是像普通的处理方式,每行语句单独提交。
对于经常大批量更新,使用batchsql可以大幅度提高性能。但是要注意如果应用程序中有lob字段,或是经常有只更新
少量的行,这样使用batchsql没有益能好处,反而使replicat在normal和batch mode之前来回switch,而会影响性能.
对于有些不满足batchsql的条件,replicat会进行重试三次,在这样的情况下,性能下降的情况更加明显.
batchsql 两个主要的参数,定义了多少条语句作为一个语句提交
batchsql opsperqueue 30000, opsperbatch 30000
BATCHSQL statistics:
Batch operations: 30000
Batches: 1
Batches executed: 1
Queues: 4
Batches in error: 0
Normal mode operations: 0
Immediate flush operations: 0
PK collisions: 0
UK collisions: 0
FK collisions: 0
Thread batch groups: 0
Commits: 1
Rollbacks: 0
Queue flush calls: 2
batchs表示生成多少个batch,batchs executed表示在db层面执行了多少次batch.两个参数default为1200.对于大多数情况下
已经很适用了.
对于batchsql尽量多测试,网上有很多文章,不管三七二十一,直接就建议设置batchsql。发现在ggserr.log中产生大量
在normal mode和batch mode之间来回switch的情形,这样反而影响了replicat的性能,一定要根据实际情况做出设置,要不然
oracle怎么不把这个选项直接加到replicat中呢?所以有一定的适应场景,需要由用户自己去根据环境进行合理的配置.