存储过程执行超时问题

时间:2010-12-01 08:12:56

标签: sql-server stored-procedures

我创建了一个存储过程。当我在查询分析器中执行它时需要47秒。 所以我的Web应用程序抛出了Timeout异常。 我们可以在我的代码或web.config文件中进行任何修改,而不是在存储过程中进行更改以解决此问题。

我的配置文件中有以下设置

<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="120"/>

我的代码是:

Dim ds = New DataSet()
        _dbCommand = _database.GetStoredProcCommand("GetDetailsForAll")
        _dbCommand.CommandType = CommandType.StoredProcedure
        ds = _database.ExecuteDataSet(_dbCommand)

如果我再添加一行:

_dbCommand.CommandTimeout = 120
然后我的问题解决了。 所以我的问题是我在web.config文件中设置了超时。我是否还需要在我的代码中添加_dbCommand.CommandTimeout = 120行。

2 个答案:

答案 0 :(得分:3)

基于更新问题的新答案

.config文件中连接字符串属性的超时是连接超时,而不是命令超时。连接超时是指等待SQL Server最初响应连接的时间,而不是执行查询所需的时间。

如果要在配置文件中设置命令超时,则必须自己编码,因为它不是连接字符串的一部分。

答案 1 :(得分:1)

扩大db-connection-class中的超时..但我建议先优化SP!