0

我有一个非常特殊的问题,我正在寻找可以帮助我深入了解它的建议。

我在 SQL Server 2008 R2 数据库上有一个 .NET 3.5 (MVC3) 应用程序。

在本地和其他两台服务器上,它运行良好。但是在实时服务器上,有一个存储过程总是在 30 秒后超时。

如果我在数据库上运行存储过程,则需要几秒钟。但是如果应用程序接收到存储过程,那么分析器会说它花费了 30 多秒。如果我们直接在 DB 上运行,探查器收到的相同查询会立即运行。

此外,其他 3 个本地服务器中的任何一个都不会出现相同的问题。

如您所知,这让我发疯,我什至不知道如何诊断。偶数日志只是将超时显示为警告。

有没有人以前有过这样的事情,我可以从哪里开始寻找修复?

非常感谢

4

1 回答 1

1

您的应用程序中可能发生了一些在服务器上运行查询时不会发生的锁定。

READ UNCOMMITTED要对此进行测试,请使用或NOLOCK提示在您的应用程序中运行您的查询。如果它有效,您需要检查您的调用顺序或检查您的隔离级别是否过于激进。

这些可能很难确定。

于 2012-12-03T12:44:12.177 回答