我们正在使用Linq连接数据库,在一种情况下我们需要执行大查询,我可以直接在sql server中执行该查询,但当我尝试通过asp.net执行相同的查询时,它显示超时错误,你能帮帮我吗?
我们也在使用pagemethods => webmethods联系sql server。
答案 0 :(得分:0)
您需要增加CommandTimeout,而不是ConnectionTimout。 ConnectionTimeout(在其他答案中)是应用程序允许连接到数据库而不是运行注释的时间量。
您可能还希望通过添加索引等来提高sql查询的性能。您可以使用SQL事件探查器来捕获Linq to SQL生成的sql语句。抓取查询并通过SSMS上的执行计划运行它,看看它花了大部分时间执行的位置。这通常是一个很好的起点。
答案 1 :(得分:0)
看看这个问题的答案:Linq-to-SQL Timeout
您可以在DataContext对象(https://msdn.microsoft.com/library/system.data.linq.datacontext.commandtimeout%28v=vs.110%29.aspx)上设置命令超时。
示例(来自链接的答案):
using (MainContext db = new MainContext())
{
db.CommandTimeout = 3 * 60; // 3 Mins
}