私はhttp://docs.jboss.org/hibernate/core/3.3/reference/en/html/performance.htmlでHibernateチュートリアルを行って、selectまたはJoinの間に戦略をフェッチする方が良いと私たちが行くべきかという質問を受けました。ほとんどの人はあなたの要求に依存していると言うでしょう。しかし、ほとんどのWebアプリケーションでは、パフォーマンスが良くなければならないという共通の要件があります。ここに私の理解があります: -Lazy Fetch戦略対Eager Hibernateで戦略をフェッチしますか?
レイジー/セレクトフェッチ戦略: - フェッチ戦略は、関連のレイジーフェッチです。レイジー戦略の目的は、メモリの最適化です。メモリ最適化とは、ヒープエラーから私たちを救うことを意味します。これが私の考えです。 Lazy Fetch戦略を実行する必要があるaseesionにあまりにも多くのオブジェクトをロードしている場合はyesと言うことができますが、時間パフォーマンスに関しては何の利点も提供しません。合意?
Eager/Joinフェッチ戦略: - Joinアソシエーションの熱心なフェッチ戦略をフェッチします。Join Fetch戦略の目的は、時間の点で最適化です。つまり、親オブジェクトをフェッチするときにアソシエーションが正しくフェッチされます。この場合、我々は何度も何度もデータベース呼出をしません。したがって、これははるかに高速になります。セッションであまりにも多くのオブジェクトを取得すると、これは悪くなります。なぜなら、Javaヒープエラーが発生する可能性があるからです。
これで、時間応答の点ではるかに優れているので、私たちが取り組むべきオブジェクトがあまりにも多くロードされていないハイバーネーションセッションで言うことができます(ガベージコレクタによって一度だけメモリが再利用されます)私たちはセッションを閉じますか?)