使用hibernate处理大量数据

时间:2014-07-31 06:05:14

标签: java sql oracle hibernate jpa

我正在使用hibernate来处理我的应用程序中的数据。应用程序运行正常但我在应用程序中面临时间相关的性能。方案是,我有一个远程定位的表,包含大约100000行。我必须使用一些映射将该数据插入本地数据库表(具有不同的结构)(以便我可以知道哪个远程表列等效于本地表列)。处理这些数据需要9个小时。我正在执行本机SQL查询。是否会导致性能问题?任何建议将不胜感激。

1 个答案:

答案 0 :(得分:2)

  1. 设置以下Hibernate属性以启用批处理:

  2. 处理批处理后,您需要清除会话以清除内存。这允许您使用较小的堆大小,因此减少了长GC运行的可能性:

    调用Session.flush(); session.clear();

  3. 使用new identifier generators如果您使用数据库序列,则可以选择the pooled-lo optimizer。使用hi / lo算法将减少序列调用并提高性能。

  4. 不要使用身份生成器,因为这将禁用批处理