【问题标题】:Inexplicable query timeout with ASP.NET and SQL ServerASP.NET 和 SQL Server 的莫名其妙的查询超时
【发布时间】:2012-12-28 06:19:14
【问题描述】:

有时,我的 Web 应用程序在尝试执行特定存储过程时会引发超时异常。从那一刻起,存储过程将永远不会再次执行,直到我重新启动数据库服务器。

奇怪的是,我可以在SQL Server Management studio中手动执行存储过程,而且执行时间是正确的(大约0.2秒)。

但是如果从网络服务器发出相同的确切调用...超时。这怎么可能?

我正在使用 SQL Server 2012,我正在使用 Linq2Sql 在我的代码中映射存储过程。

附加信息:我已尝试运行此博客文章中的“检测阻塞”sql:http://blog.sqlauthority.com/2010/10/06/sql-server-quickest-way-to-identify-blocking-query-and-resolution-dirty-solution/,但未返回任何行。

【问题讨论】:

  • 发生时还有其他具体情况吗?例如,也许它只在调试时发生?
  • 不,当没有进程连接到调试器时也会发生这种情况。我在我的机器上运行 IIS(Windows 7)。
  • 你在使用事务吗?
  • 不在任何对阻塞的查询感兴趣的表上。顺便说一句,如果事务是问题,我不应该也无法从管理工作室执行查询吗?
  • 你能发布SP定义吗?也许你使用LINQ to SQL的方式?

标签: asp.net sql-server timeout


【解决方案1】:

可能在 SQL Server 中缓存了错误的查询计划。您可以尝试使用Recompile option 重新编译存储过程。使用此选项,SP 不会被缓存,并且每次调用时都会重新编译。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-19
    • 1970-01-01
    • 2016-07-05
    • 2013-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-12
    相关资源
    最近更新 更多