nHibernate を使用して、ASP.NET アプリケーションにストアド プロシージャへの SQL 呼び出しがあります。
GetNamedQuery("MyProc")
.SetString("param1", value1)
.SetString("param2", value2)
...
ここでは SQL Server 2005 を使用しています。テスト環境では問題なく動作します。この呼び出しは完了するまでに約 2 秒かかります。しかし、それを新しいサーバーに移動すると、これに非常に時間がかかり始め、アプリケーションでタイムアウト例外が発生しました。
ただし、SQL Server プロファイラーで呼び出しをキャッチすると、これが 30 秒間実行されることがわかります。しかし、同じクエリをコピーしてサーバーで実行すると、2 秒で完了します。
問題は、.NET アプリケーションからの作業中のクエリに何が影響するかということです。