一般动作
登录
Wiki: BROPEN ▼: Document Index
»
Space: FAQ ▼: Document Index
»
Page: 大批量数据处理时，使用 session.clear 来提升性能
搜索
zh
页面动作
导出 ▼: 以PDF格式导出 以RTF格式导出 以HTML格式导出
更多动作 ▼: 打印预览 察看源码
欢迎进入Wiki » FAQ » 大批量数据处理时，使用 session.clear 来提升性能?

# 大批量数据处理时，使用 session.clear 来提升性能?

在2014-11-06 11:42上被李小翔修改
评论 (0) · 附件 (0) · 记录 · 信息

同时处理大量数据时，会发现系统越跑越慢，每处理一条数据的时间越来越长，除了改用纯 jdbc、增加jvm内存等原始手段外，可以使用 hibernate session 的 flush、clear 方法类清空内存，从而达到性能提升的效果。

更详细的资料可以参考文档：Batch Import Performance With Grails and MySQL

示例代码如下，每处理 1000 条数据就清理一下 session：

Foobar.withNewSession{ session ->
int i = 0
for ( Foobar foobar in foolbarList ) {
if ( ++i % 1000 == 0 ) {
session.flush();
session.clear();
}
}
session.flush();
}
标签： grails hibernate
在2014-11-06 11:41上被李小翔创建

- 评论 （0）
- 附件 （0）
- 记录
- 信息

# 快速链接

- 首页
- 新闻动态
- FAQ

Copyright © 2013 北京博瑞开源软件有限公司
京ICP备12048974号