-1

我使用带有 derby DB 或 MaxDB 的 eclipse 链接,当我进行性能测试以保存 10 个实体的数据时,每个实体有 1000 条记录,这需要 12.9 秒,我的代码需要 0.9 秒,而使用 JPA 的实体管理器的提交大约需要 12 秒。

1.10,000条记录的时间是12秒可以吗?

2.我读到有选项使用

<property name="eclipselink.jdbc.batch-writing" value="JDBC" />

使用它的缺点是什么?日志记录是如何工作的?

3. 使用 Thread 进行提交怎么样?

4

2 回答 2

2
  1. 如果它对您来说足够快,那没关系。只有你自己知道。您可以将其与使用 JDBC 手工编写的代码进行比较。但是不要忘记还要考虑代码的可维护性和正确性以及编写和测试它所花费的时间。硬件便宜。开发人员不是。请注意,您测试的用例(在大量表中插入大量行)在大多数典型应用程序中不是非常常见的用例,并且不适合 JPA,它通常用于实现短事务(如购买亚马逊上的一本书,或者在博客中添加一条消息,诸如此类)。

  2. 不知道。

  3. JPA 实体管理器不是线程安全的,当前事务通常与当前线程相关联。您不能在一个线程中启动事务并在另一个线程中提交它。

于 2013-04-27T16:52:30.883 回答
0

您绝对应该启用批量写入(并确认您的数据库/驱动程序支持它)。

看,

http://java-persistence-performance.blogspot.com/2011/06/how-to-improve-jpa-performance-by-1825.html

于 2013-04-29T13:56:22.520 回答