我有一个非常特殊的问题,我正在寻找可能有助于我深入了解它的建议。
我在SQL Server 2008 R2数据库上的.NET 3.5(MVC3)中有一个应用程序。
在本地和另外两台服务器上,它运行良好。但是在实时服务器上,有一个存储过程总是在 30 秒后超时。
如果我在数据库上运行存储过程,则需要几秒钟。但是,如果应用程序收到存储过程,则探查器表示它花费了 30 多秒。如果我们直接在数据库上运行它,则分析器收到的相同查询会立即运行。
此外,其他 3 台本地服务器中的任何一台都不会发生相同的问题。
如你所知,这让我发疯,我什至不知道如何诊断这一点。偶数日志只是将超时显示为警告。
以前有没有人遇到过这样的事情,我可以从哪里开始寻找修复?
非常感谢
了一些锁定,在服务器上运行查询时不会发生这些锁定。
若要对此进行测试,请使用READ UNCOMMITTED
或NOLOCK
提示在应用程序中运行查询。 如果它有效,您需要检查您的呼叫顺序或检查您的隔离级别是否不太激进。
这些可能很难确定。