执行检索7000多个数据的存储过程时出现超时错误



我编写了一个检索超过7000行的存储过程。而执行存储过程在我的VB。. NET winforms应用程序,我得到如下错误:

超时过期。操作完成前的超时时间或服务器没有响应。

我在谷歌上搜索并尝试使用这些没用的代码行。

    sqlCmd.CommandTimeout = 0
    sqlCmd = New SqlCommand("waitfor delay '00:00:60'")

请帮帮我。

您可能在多个地方遇到超时。有些事情值得尝试。

  1. 在Sql Management Studio中使用完全相同的参数运行存储过程。需要多少秒?这将使您了解需要多长时间的超时。如果耗时超过30-60秒,请考虑修改sql、添加索引或调整数据库。
  2. CommandTimeout -这是特定命令的超时时间。您应该避免将其设置为0,尽管这可能有效,http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.commandtimeout.aspx
  3. ConnectionTimeout -这是整个连接的超时属性。如果这个值小于你的CommandTimeout,它将重写。同样,这里应该避免使用0。http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectiontimeout.aspx

您应该增加commandTimeOut,而不是将其设置为0。

尝试输入值60,即1分钟

不建议将超时时间设置为0。剩下的答案只能是增加限制,但是…

增加超时时间就像一个创可贴的解决方案。如果你有一个更长的查询呢?你会再次增加超时时间吗?

要解决这个问题,请参考我的答案在这里。

超时过期。操作完成前的超时时间或服务器没有响应

最新更新