-1

私はダービーDBまたはMaxDBでEclipseリンクを使用しています.1000レコードの10エンティティのデータを永続化するためにパフォーマンステストを行ったとき、それぞれ12.9秒かかり、私のコードは0.9秒かかり、JPAを使用したエンティティマネージャーのコミットには約12秒かかります.

1. 10,000 レコードの場合、時間は 12 秒でよろしいですか?

2.オプション利用があると読みました

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

それを使用することの欠点は何ですか?ロギングはどのように機能しますか?

3.コミットにスレッドを使用するのはどうですか?

4

2 に答える 2

2
  1. 十分に速い場合は問題ありません。あなただけがそれを知っています。JDBC を使用して手動で記述されたコードと比較できます。ただし、コードの保守性と正確性、およびコードの作成とテストにかかる時間も考慮することを忘れないでください。ハードウェアは安価です。開発者はそうではありません。テストしたユースケース (多数のテーブルに多数の行を挿入する) は、ほとんどの典型的なアプリケーションではあまり頻繁に使用されるものではなく、短いトランザクション (購入など) を実装するために通常使用される JPA には適していないことに注意してください。 Amazon で本を読んだり、ブログにメッセージを追加したりするなど)。

  2. わかりません。

  3. JPA エンティティーマネージャーはスレッドセーフではなく、通常、現在のトランザクションは現在のスレッドに関連付けられています。スレッドでトランザクションを開始して、別のスレッドでコミットすることはできません。

于 2013-04-27T16:52:30.883 に答える