いくつかの Web サービス呼び出しを高速化しようとしていますが、多くの NHibernate 接続を開くことが問題であると思われます。SQL サーバーへの新しい接続を開くには、非常に時間と費用がかかることを認識しています。しかし、多くの場所で nhibernate セッションを開いたとしても、NHibernate は単一の接続を保持すると考えていました (したがって、1 回だけ開く必要があります)。
したがって、この質問のいくつかの異なる部分を次に示します。
- セッションを作成して破棄した後、もう一度作成すると、2 回目のロードに同じ時間がかかりますか、それとも SQL サーバー接続がまだバックグラウンドで使用されていますか? このような:
using (var session = new SessionFactory.OpenSession()) {... }; using (var session2 = new SessionFactory.OpenSession()) {.. };
- using ステートメント内でセッションを作成し、そのステートメント内で (破棄せずに) 別のセッションを作成した場合、バックグラウンドで他の SQL サーバー接続全体をスピンアップする必要はありませんか? このような:
using (var session = new SessionFactory.OpenSession()) { using (var session2 = new SessionFactory.OpenSession()) {.. }; };
- 最後に、SQL サーバー接続は Web サービス呼び出し間で保持されますか? つまり、Web サービス リクエスト コール #1 でセッションを開くと、Web サービス リクエスト コール #2 ははるかに高速になりますか?
ほとんどの場合、1 つのセッションだけを使用するのがおそらく最善であることは承知していますが、非常に大きなプログラムが作成され、多くの新しいセッションが開かれています。か否か。
ありがとう!