【发布时间】:2011-09-29 22:50:43
【问题描述】:
我有一个应用程序,其中"persisting to database" 占用了整个应用程序流程的 85%。
我正在考虑使用多个线程来进行插入,因为插入在这里大多是独立的。有没有办法使用任何 JPA 实现来实现多线程插入?或者,从提高性能的角度来看,是否值得进行多线程插入?
注意:一次运行中插入的记录范围为 10K 到 100K。在这里,性能也非常关键。
谢谢。
【问题讨论】:
-
您能提供更多细节吗?就像正在使用的数据库一样,代码的片段(方法)。这可能会影响您的应用程序,这似乎有点奇怪。
-
您可能需要的不仅仅是重新设计应用程序来获得您所寻求的效率。如果您的底层数据库表的设计方式不支持多次插入,那么世界上所有的应用程序优化都将无济于事。举个例子,您能否在插入期间避免表上的索引锁?
-
@woliveirajr,@Perception。 This 是用例。使用的数据库是 Oracle 和 eclipselink 作为 ORM 提供者。
-
从该用例中,您引入的任何多线程都可能会使性能变得更糟,因为锁争用和 IO 带宽问题是受到负面影响的主要因素。
标签: java multithreading performance database-design jpa