【问题标题】:SQL Server long running query randomly timeout through .NetSQL Server长时间运行的查询通过.Net随机超时
【发布时间】:2012-11-09 15:26:16
【问题描述】:

我们有一个程序连接到我们的数据库并运行一些存储过程来获取一些数据。

数据库是 SQL Server 2008,程序在本地运行。连接是通过 TCP/IP,但启用了共享内存。并且连接字符串的超时时间设置为45秒。

当我们通过 SQL Server Management Studio 运行它们时,运行需要 0-5 秒。 当我们通过代码运行它时,它会随机超时。

为了进行一些测试,我们将超时时间从 45 秒增加到几分钟。并且为了放弃任何阻塞问题,我们检查了存储过程仅“选择”数据(没有插入或更新语句)。我们已经为 select 语句尝试了几种表修饰符,例如:nolockreadpast、...

我还检查了sp_who2dbcc opentran() 并且没有任何内容被阻止......并且.Net 的SPID 是running command ...。有关 .Net 等待 DB 回答时的更多详细信息,通过 SQL Server Management Studio,我可以毫无问题地运行相同的语句(存储过程或选择)。

对正在发生的事情有什么建议吗?

【问题讨论】:

  • 您是在调用 SqlConnection.Open() 时还是在实际执行查询的调用时收到 SqlException?
  • SqlException 代码返回超时。但问题是查询似乎不是由 SQL Server 执行的(尽管 sp_who2 显示 running command
  • 我没有问这个。我问哪行代码引发了异常。这将帮助我们确定失败的原因。
  • 请尽可能多地包含异常消息中的实际文本。可能有几种不同的东西都说超时。
  • 请发布.NET和一个问题SP

标签: c# .net sql-server timeout sqlclient


【解决方案1】:

连接字符串超时只影响登录超时。您似乎遇到了命令超时,只能通过修改 CommandTimeout 来更改。默认值为 30 秒,推荐值为 0(无限超时)。

至于你的程序为什么会随机执行缓慢,我建议先阅读Slow in the Application, Fast in SSMS? Understanding Performance Mysteries

顺便说一句,您的查询可能未被阻止。它执行一个不同的计划,该计划只需要很长时间才能执行。在sys.dm_exec_requests 中检查last_wait_type 可能会显示IO 等待(PAGEIOLATCH,在将任何红鲱鱼CXPACKET 追逐到sys.dm_os_workers 加入之后...)。但是,重复我最初链接的 Erland Sommarskog 更全面、更出色的文章是没有意义的。

【讨论】:

  • "...推荐值为 0(无限超时)。" - 由谁推荐,为什么推荐?
  • 如果普遍推荐使用 0,我相信这就是默认值。
  • 我推荐的,如果这对你有任何影响的话。如果查询意味着超时,SSMS 会超时,sqlcmd 会超时,引擎本身会超时。默认的 CommandTimeout 值与default serialization level of the system transaction scopes 属于同一存储桶...
  • @RemusRusanu 你推荐的读物很有趣,我学到了很多,但没有解决这个问题。
【解决方案2】:

有两种超时:连接和查询。

如果你的查询超时,那就是查询问题;但既然你说你可以通过 SQL Server Management Studio 运行它,我怀疑它是查询。

如果您的连接超时,很可能是网络问题。我看到您已经尝试过(锁、提示等),但您假设是查询导致了问题。试着从网络的角度来思考。我听说过 SQL Server 中的活动监视器,它可以帮助您检测连接期间的网络问题。

【讨论】:

    【解决方案3】:

    如果超时来自 .net 端,则将这 2 个参数添加到连接字符串。

    超时=3600000;

    最大池大小=360000;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-29
      • 1970-01-01
      • 1970-01-01
      • 2021-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多