我在我的 ASP.NET 应用程序中使用 nHibernate 对存储过程进行了 SQL 调用:
GetNamedQuery("MyProc")
.SetString("param1", value1)
.SetString("param2", value2)
...
此处使用 SQL Server 2005。它在我们的测试环境中运行良好,这个调用大约需要 2 秒才能完成。但是当我们将它移动到新服务器时,它开始需要很长时间,并且我的应用程序中出现超时异常。
但是,我在 SQL Server Profiler 中捕获调用,发现该调用运行了 30 秒。但是当我复制相同的查询并在服务器上运行它时,它会在 2 秒内完成。
那么问题是什么会影响来自 .NET 应用程序的工作查询?