如何延长SQL查询的超时时间
这不是连接超时,因为与数据库的连接正常。 问题是我调用的存储过程花费的时间超过 30 秒,并导致超时。
该函数的代码如下所示:
SqlDatabase db = new SqlDatabase(connectionManager.SqlConnection.ConnectionString);
return db.ExecuteScalar(Enum.GetName(typeof(StoredProcs), storedProc), parameterValues);
ExecuteScalar 调用超时。 如何延长该函数的超时时间?
对于快速存储过程,它工作得很好。 但是,其中一个函数需要一段时间并且调用失败。 当以这种方式调用 ExecuteScalar 函数时,我似乎找不到任何方法来延长超时时间。
This is not a connection timeout as a connection to the database is made fine. The problem is that the stored procedure that I'm calling takes longer than, say, 30 seconds and causes a timeout.
The code of the function looks something like this:
SqlDatabase db = new SqlDatabase(connectionManager.SqlConnection.ConnectionString);
return db.ExecuteScalar(Enum.GetName(typeof(StoredProcs), storedProc), parameterValues);
The ExecuteScalar call is timing out. How can I extend the timeout period of this function?
For quick stored procedures, it works fine. But, one of the functions takes a while and the call fails. I can't seem to find any way to extend the timeout period when the ExecuteScalar function is called this way.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
如果您正在使用 EnterpriseLibrary(看起来您正在使用),请尝试以下操作:
编辑以直接根据注释处理 paramValues 数组。 我还包括了您的 ConnectionString 值:
If you are using the EnterpriseLibrary (and it looks like you are) try this:
Edited to handle the paramValues array directly based on the comments. I also included your ConnectionString value:
您可以通过设置
SqlCommand.CommandTimeout
属性。You do this by setting the
SqlCommand.CommandTimeout
property.我认为这可能是更好的方法(从 Enterprise Library 6.0 开始):
I think this might be a better way to do this (as of Enterprise Library 6.0):
试试这个
Try this one
姆拉登是对的,但如果你必须这样做,你的过程本身可能会遇到更大的问题。 在负载下,它可能需要比新超时更长的时间。 可能值得花一些时间来优化过程。
Mladen is right but if you have to do this you probably have a bigger problem with the proc itself. Under load it might take much longer than your new timeout. Might be worth spending some quality time with the proc to optimize.