SqlCommand对象,CommandTimeout的时长是多少?

在使用SqlCommand对象时,如何确定使用超时的时间长度?

在我正在处理的部分代码上(由其他人编写)我有:

cmd.CommandTimeout = 60; 

我觉得这很短暂。 但是,我在论坛上看到一些人谈论将它设置为30000,这似乎太长了。

我怎么知道什么是我的应用程序的最佳选择?

似乎人们对这是秒还是毫秒感到困惑。 文档指出超时以秒为单位。 对于大多数查询,1分钟的超时似乎是合理的。 8小时以上的超时似乎并不合理。

您是否有预期需要超过一分钟的疑问? 如果是这样的话,将它提升到一个你希望高于你所看到的任何值的值,如果一切正常,但不要太高,以便永远提醒你一个问题。 (例如,您可能会从1分钟到5分钟。)

默认值为30秒( http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.commandtimeout.aspx )。

如果您的数据库位于同一台计算机上,则通常无需更改它。 试一试:如果遇到连接超时会增加价值。

您应该计算将尽可能多的时间进行最长的查询,并将该值乘以1.5以处理服务器过载,网络流量等…

这是在SECONDS中,它完全取决于实际SQL命令可能需要多长时间。

例如,我们的大多数命令运行的sproc都应该花费不超过30秒来完成,但是有一些运行的时间要长得多,这意味着它们有自己的高值超时。

您需要分析您的例程平均需要多长时间,然后相应地调整超时,并记住为延迟等变量留出空间。

SqlCommand.CommandTimeout用于在终止执行命令的尝试之前设置等待时间,这意味着您希望为SqlCommand执行特定的sql查询或存储过程并等待它完成的时间。 如果命令没有在指定的时间内完成,它将被终止并且将抛出exception..

因此,设置CommandTimeout的值完全取决于您的应用程序和要求,如果您知道正在执行的sql语句或存储过程将花费少于将其设置为大于60的值,否则60秒似乎足以等待完成任何声明。