为啥我在应用程序中收到 sqlcommand 超时?

Posted

技术标签:

【中文标题】为啥我在应用程序中收到 sqlcommand 超时?【英文标题】:Why am I getting a sqlcommand timeout in the application?为什么我在应用程序中收到 sqlcommand 超时? 【发布时间】:2009-08-05 18:36:14 【问题描述】:

我在调试应用程序时遇到 sqlcommand 超时问题,即使存储过程在 Management Studio 中运行时间不到 25 秒。我将超时属性设置为 180 秒,但仍然出现错误。有什么建议吗?

【问题讨论】:

【参考方案1】:

你在哪里设置超时属性?当我在 SqlConnection 字符串中设置超时时,我曾经遇到过同样的问题,但事实证明我在 SqlCommand 本身中也需要它。

【讨论】:

【参考方案2】:

25 秒对于运行存储过程来说是很长的时间。我建议进一步优化查询。

【讨论】:

【参考方案3】:

您是在连接字符串中设置“连接超时”还是“命令超时”?他们很容易出错。

--编辑

如果您的系统没有锁定 SP 中使用的表,请尝试在您的代码中搜索。

它不会解决问题,但是记录程序的开始/结束(在数据库端,通过将 SP 放在另一个 SP 中)可以告诉您问题是否在启动 SP 之前(因为网络,网络服务器加载等)或在执行时。

希望对你有帮助

【讨论】:

CommandTimeout 在代码中,而不是在连接字符串中。我不明白为什么可以在管理工作室中运行 1-25 秒的 sp 在应用程序中可能需要 2.5-4 分钟。你有什么可以建议的吗?顺便说一句,我没有写 sp,也不能改变它。【参考方案4】:

尝试针对该存储过程运行 sp_recompile,然后从您的应用程序再次尝试。

【讨论】:

以上是关于为啥我在应用程序中收到 sqlcommand 超时?的主要内容,如果未能解决你的问题,请参考以下文章

调用 SQL Server 存储过程的 SqlCommand 超时

为什么我的实时网站出现超时错误

SqlCommand 超时,CommandTimeout 和 ConnectionTimeout 都 = 0

.Net SqlCommand.ExecuteNonQuery 中的查询超时,适用于 SQL Server Management Studio

从 SqlCommand 对象发送啥 SQL

为啥“nvarchar”参数比“文本”“SqlCommand”命令的其他类型更快?