Linq to sql 增加LINQ到SQL存储过程调用的超时

Linq to sql 增加LINQ到SQL存储过程调用的超时,linq-to-sql,Linq To Sql,我通过Linq调用存储过程到SQL。这个存储过程只是处理我已经插入到另一个表中的数据。在大型数据集上,我得到一个超时异常: "Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding." 我不能做任何事情来加速存储过程——它只是将数据从一个表移动到另一个表。我并不特别想增加数据库连接字符串中的超时时间——这是唯一需要花费很长时

我通过Linq调用存储过程到SQL。这个存储过程只是处理我已经插入到另一个表中的数据。在大型数据集上,我得到一个超时异常:

"Timeout expired. The timeout period elapsed prior to completion of the operation
 or the server is not responding."
我不能做任何事情来加速存储过程——它只是将数据从一个表移动到另一个表。我并不特别想增加数据库连接字符串中的超时时间——这是唯一需要花费很长时间的事情

这不是一个网络应用程序;该存储过程是从普通Windows服务中的后台线程调用的。后台线程由WCF调用启动,客户端定期轮询后台线程的结果

不幸的是,存储过程花费的时间太长,GetDataContext.spRunStoredProcedure调用抛出TimeoutException,即使存储过程看起来运行正常


是否可以仅为此存储过程调用增加超时?或者有没有一种方法可以让存储过程返回I'm not dead not dead but the connection from timeout?

因为它是关于移动数据的,而且实际上需要很长时间才能超时:将其从web上移开,并使其成为计划的SQL作业,这可能是一种解决方案吗


除此之外,实际上,没有不能优化的查询;尤其是那些暂停的人。增加超时不是一个很好的解决方案。即使是将数据从一个表移动到另一个表,通常也是相当仓促的。看看您的索引、如何选择数据、锁和统计信息。在启用了执行计划的Management Studio中运行一个通常很长的查询,看看是什么导致了大部分的负载—通常可以确定为一个或两个瓶颈因素,并查看是否可以对它们采取任何措施。

在DataContext上,将属性设置为更高的秒值。SQL Server的时间是30秒,您可以将其设置为0以使其不超时。

Hi BK我们如何在所有存储过程调用的连接字符串中设置它您是对的,但在公司工作的许多人根本不知道如何做,他们很自豪地承认这一点,或者只是缺乏资金或雄心壮志来解决这一问题。最后一个选择是,人们根本不知道自己在做什么,当试图与这样的公司合作时,这会导致严重的问题。我同意这是正确答案,但。。正如我们所看到的,只需2秒钟就可以增加时间,并假装问题从未存在。@ppumkin:当然,第二段主要是针对原始问题中的一句话,我不能做任何事情来加快存储过程的速度哦,对了。我错过了这一部分——这是我遇到这个问题的唯一原因,因为我处理的是存储过程,另一方希望将其保持为私有,但我必须在前端实现。他们不知道如何优化速度。他们使用%term%搜索了数百万条记录,并想知道为什么查询需要45~90秒。我写这篇文章的时候心情不好,但我认为你的第二段在当时是非常相关的。我能做什么-智能感知现在需要90秒。。。。叹气