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

发布于 2024-12-11 06:05:45 字数 299 浏览 0 评论 0原文

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

超时已过。操作完成之前超时时间已过,或者服务器没有响应。

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

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

请帮我解决这个问题。

I have written a stored procedure which retrieves more than 7000 rows. While executing the stored procedure in my VB.NET winforms application, I'm getting an error like as follows.

Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.

I googled and tried like using these lines of codes which wasn't useful.

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

Please help me with this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

血之狂魔 2024-12-18 06:05:45

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

  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

There are multiple places you can be experiencing a timeout. Some things to try.

  1. Run the stored procedure with the exact same parameters in Sql Management Studio. How many seconds does it take? This will give you an idea of how long you need your timeout to be. If it takes more than 30-60 seconds, consider revising your sql, added indexes and otherwise tune your database.
  2. CommandTimeout - This is the timeout for your particular command. You should avoid setting it to 0, although this may work, http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.commandtimeout.aspx
  3. ConnectionTimeout - This is the timeout property for your entire connection. If this is less then your CommandTimeout it will override. Again, 0 should be avoided here. http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectiontimeout.aspx
弱骨蛰伏 2024-12-18 06:05:45

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

尝试将值设置为 60,这意味着 1 分钟。

You should increase the commandTimeOut and not put it 0.

Try to put the value 60, which means 1 minute.

豆芽 2024-12-18 06:05:45

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

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

要解决此问题,请参阅我的答案。

超时已过。操作完成前超时时间已过或服务器未响应

It is not advisable to set your timeout to 0. The remaining answer would be only to increase the limit BUT..

Increasing the timeout is like a band-aid solution. What if you have a longer query? Will you just increase the timeout again?

To solve this, please refer to my answer here..

Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文