エンティティBean(ファインダーメソッド)を削除し、代わりにDAOレイヤーを導入すると、パフォーマンスが向上しますか?これは主にDBからデータを読み取るために行いたいです。プロジェクトに約15のエンティティBeanファインダー呼び出しがあるプロセスがあるので、エンティティBeanを削除するか、DAOを導入してエンティティBeanをそのままにしておくと、パフォーマンスが大幅に向上しますか?私はEJB2.1を使用しています。
1202 次
1 に答える
1
エンティティ Bean ファインダを使用してデータを取得すると、当面のタスクでそのうちの 1 つの値のみが必要な場合でも、エンティティのすべての属性が読み込まれます。したがって、実際、EJB finder メソッドにはオーバーヘッドがあり、これは大きなデータ セットを取得する場合に特に当てはまります (15 個のデータ セットを呼び出す場合は言うまでもありません)。
したがって、大きな読み取り専用データセットを取得するには、JDBC API を使用してセッション Bean (セッション Bean ファサードがあると思います) から直接データベースと対話することが実際に望ましい場合があります。このパターンは、よく覚えていればFast Lane Readerとして知られています。
生の JDBC レベルで実行されるクエリは、エンタープライズ Bean によって表されるビジネス情報に対して行われた保留中の変更を「認識」しないため、このパターンの実装はパフォーマンスのためにデータの一貫性を犠牲にすることに注意してください。
于 2010-01-29T07:55:54.923 に答える