【问题标题】:Process large amount data using hibernate使用休眠处理大量数据
【发布时间】:2014-09-22 23:32:26
【问题描述】:

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

【问题讨论】:

  • 你的目标表有索引吗?

标签: java sql oracle hibernate jpa


【解决方案1】:
  1. 设置以下 Hibernate 属性以启用批处理:

  2. 处理完一个批次后,您需要清除 Session 以清除内存。这允许您使用更小的堆大小,从而减少长时间 GC 运行的机会:

    session.flush(); session.clear();

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

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

【讨论】:

    猜你喜欢
    • 2015-10-24
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多