`
pouyang
  • 浏览: 315271 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

数据库 Batch批处理

阅读更多
Experience Batch批处理
之前发表过一篇文章,以为完全可以解决问题了
突然当数据量达到非常大,上百上千万的时候,问题出现了
批处理写法

1 一次插入2000条数据

a 启动事务
b 启动批处理
c 提交批处理
d 关闭事务


2 一次插入20000条数据

上面处理方式会报异常
a 启动事务
b 启动批处理
c 提交批处理 这个地方报异常(数据库)
d 关闭事务
解决方法1:

a 启动事务
b1 启动批处理(限制不报异常的数量)
c1 提交批处理
b2 启动批处理
c2 提交批处理
 .
 .
d  关闭事务


解决方法2:

a 限制批处理的数量
b 启动事务
c 启动批处理
d 提交批处理
e 提交事务


“批量插入减少了获取数据库连接池的次数”这么说是误导别人的。性能的提高不是这个原因
size 是 500 的话:
1,减少了499次网络交互的过程
2。数据库从500个事务, 变成了1个事务
选择500也是一个非常合适的数据, 当然具体最多多少条数据提高最好的性能是要通过测试才能确定。 如果一次批量操作太多也是有问题的。 比如, 数据表部分缩太长时间,或者一次产生过大的redo log. 可以继续深究一下哦。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics