私は '句'に2 'を持つクエリを持っています。最初の句は約125の値をとり、2番目の句は約21000の値をとります。 JPA CriteriaBuilder
を使用して実装されています。Hibernate JPA EntityManager.createQuery()performance
クエリ自体が非常に高速に実行され、数秒で結果が返されます。問題があるのはentityManager.createQuery(CriteriaQuery)
です。戻りには12〜13分かかります。
私はすべてのスレッドを検索し、すべてのスレッドはQuery.getResultList
のパフォーマンスに関連しています。彼らの誰も、entityManager.createQuery(CriteriaQuery)
のパフォーマンスについて話しません。このような動作が早い場合は、解決方法を教えてください。
JDKのバージョンは1.7です。 javaee-apiの依存バージョンは6.0です。アプリケーションはJBOSS EAP 6.4にデプロイされます。実際のOracleデータベースに接続されているEntityManager
を使用しているjunitを使用してコードをテストしているので、今のところそれは問題ではありません。より多くの情報が必要な場合は、私に教えてください。
JPAは単なるAPIであるため、問題の原因となる可能性のある実装があります。休止状態? OpenJPA? EclipseLink? – Gimby
あなたのアプリケーション(YourKitまたはJProfilerなど)をプロファイルしようとしましたか? – hunter
@Gimby:まあ、java-api-6.0 jarで利用可能なjavax.persistence。*のすべてのAPIを使用しています。私たちは、休止状態の特定のAPIを使用していません。私のアプリケーションはJBOSS EAP 6.4にデプロイされています。 – user613114