Tag: 批处理

在hibernate中插入大量记录的最佳方法

我正在使用hibernate + play! 工作中的框架,是否有使用hibernate插入大量记录的“最佳实践”? 它们每个文本文件大约有6,000到10,000个,因此我不知道Hibernate是否会在工作中窒息或抛出exception。 任何建议让我知道,如果我需要解释更多,请告诉我

如何在hibernate中启用批量插入?

使用hibernate,当我尝试启用批量插入时 50 我得到以下输出: […] cfg.SettingsFactory INFO – JDBC batch updates for versioned data: disabled […] cfg.SettingsFactory INFO – Order SQL inserts for batching: disabled 然后这个: […] jdbc.AbstractBatcher DEBUG – Executing batch size: 1 从不超过batch size: 1基本上是batch size: 1 。 我错过了一个设置吗?

Log4j:每个请求一个日志文件

我们有一个weblogic批处理应用程序,它同时处理来自消费者的多个请求。 我们使用log4j来记录目的。 现在我们为多个请求登录一个日志文件。 调试给定请求的问题与日志在单个文件中的所有请求一样变得冗长乏味。 所以计划是每个请求有一个日志文件。 消费者发送必须执行处理的请求ID。 现在,实际上可能有多个消费者将请求ID发送到我们的应用程序。 所以问题是如何根据请求分割日志文件。 我们无法每次启动和停止生产服务器,因此排除了使用带有日期时间戳或请求ID的重写文件追加器的重点。 这就是下面的文章中解释的: http : //veerasundar.com/blog/2009/08/how-to-create-a-new-log-file-for-each-time-the-application-runs/ 我也试过玩这些替代方案: http://cognitivecache.blogspot.com/2008/08/log4j-writing-to-dynamic-log-file-for.html http://www.mail-archive.com/log4j-user@logging.apache.org/msg05099.html 此方法提供了所需的结果,但如果同时发送多个请求,则无法正常工作。 由于一些并发问题,日志会随处可见。 我期待你们的帮助。 提前致谢….

无论如何,我都无法在Hibernate中批量处理MySQL INSERT语句

我目前正面临着众所周知且常见的Hibernate插入批处理问题。 我需要保存500万行的批次。 我首先尝试使用更轻的有效载荷。 由于我必须只插入两种类型的实体(首先是所有类型A的记录,然后是所有类型B的记录,都指向常见类型C ManyToOne parent),我想从JDBC批量插入中获取最大优势。 我已经阅读了很多文档,但我没有尝试过。 我知道为了使用批量插入,我不能使用实体生成器。 所以我删除了AUTO_INCREMENT ID并且我用一个技巧设置ID: SELECT MAX(ID) FROM ENTITIES并且每次都递增。 我知道我必须定期清理会议。 我将提前发布代码,但无论如何我每500个元素执行一次事务。 我知道我必须设置hibernate.jdbc.batch_size与我的应用程序的批量大小一致,所以我在LocalSessionFactoryBean设置它(Spring ORM集成) 我知道我必须在连接URL中启用重写批处理语句。 这是我的实体 共同的父实体。 这将首先插入到单个事务中。 我不关心这里的自动增量列。 每批作业只有一个记录 @Entity @Table(…) @SequenceGenerator(…) public class Deal { @Id @Column( name = “DEAL_ID”, nullable = false) @GeneratedValue( strategy = GenerationType.AUTO) protected Long id; ……………. } 其中一个孩子(假设每批2.5M记录) @Entity @Table( name = “TA_LOANS”) public […]