私たちが知っているようにStatelessSession
、Sessionとは異なりデータベース行を直接処理します。
私の質問は、StatelessSession
パフォーマンスを向上させるために、少数の挿入、更新に使用できますか?
2 に答える
それはあなたがそれをどのように使うかに強く依存します。キャッシングは一般にパフォーマンスを向上させるために考案されましたが、「通常の」休止状態セッションの問題は、キャッシングをオフに切り替えるオプションがないことです。セッションのオーバーヘッドを防ぐためにSpringJDBCを使用してデータベースアクセスを何度も作成しましたが、パフォーマンスが大幅に向上しました。
したがって、優れたアプリケーションは、StatelessSessionを使用してパフォーマンスを大幅に向上させる必要があります。Hibernateでの強制キャッシュは、コードがDBから何かを読み取るタイミングと回数を制御していないユーザーに対する救済策と考えられていたため、不適切に記述されたアプリケーションはおそらく遅くなります...
StatelessSession
キャッシュがオフになっている単なるセッションではありません。これはまったく異なる種類のセッションであり、多くの操作がサポートされていません。したがって、制約を破らないコードがある場合は、ステートレスセッションを使用しても問題はなく、高速化に役立つ可能性があります。
永続的な状態管理にHibernateを使用することを避け、代わりに単純で直接的なHQLクエリを維持するため、ステートレスセッションを頻繁に使用します。ただし、新しいレコードを保存する場合、通常のセッションは避けられません。Hibernateはinsert
リテラルデータを含むステートメントをサポートしていません。