c#sql运行语句调整30秒超时

c#sql运行语句调整30秒超时,第1张

经常会出现程序连接超时的错误,常见的错误有很多,例如:

Timeout expired. The timeout period elapsed prior to completion of the operation or the server等等

本⽂就常见的⼏种解决⽅案进⾏说明,感兴趣的可以对此加以改进与完善。

①.当然第⼀步要查看是否Connection没关闭问题,⼀般新⼿都会犯这个错误,需要认真查看⼀下哦,这个就不详细说了。

第 1 页

百度来百度,一键获取“硬线索”,让生意更好做!

最近5分钟前有人拨打电话咨询问题

了解百度,上百度,优质平台,按效果付费兆伏,精准匹配,帮你挖掘“硬线索”!现在注册开户还有六重好礼相送!

点击立即咨询,了解更多详情

咨询

百度营销 广告

②.如果将sql语句复制到查询分析器中执⾏,如果执⾏时间本来就超过30秒,那么⼀般采⽤如下的解决⽅案:

⾸先分析引起Timeout的原因,⼀般是Connection没关闭或者SqlConnection.ConnectionTimeout超时,另外⼀种就是SqlCommand.CommandTimeout引起的, SqlCommand的此⽅法为获取或设置在搜山终⽌执⾏命令的尝试并⽣成错误之前的等待时间,

他的默认为 30 秒,你可以设置为0 ,它表⽰⽆限制,但是最好不要去设置0 ,否则会⽆限的等待下去的,只需要针对查询分析器的时间,去设置这个时间就可以了

③.执⾏时间不是很长,但是还是 *** 作超时,

第 2 页

那么也有很多原因,⼀般经常出现的有两种,asp.Net应⽤程序的请求超时,或者是连接池的连接⽣存期过去,,因为连接池默认值是60秒,那么针对这两种解决⽅案为:

解决应⽤程序请求超时:

在web.config中加上以下语句:

<system.web>

<httpRuntime maxRequestLength="102400" executionTimeout="720" />

</system.web>

executionTimeout:是允许执⾏请求的最⼤时间限制,单位为秒

maxRequestLength:指⽰ ASP.Net ⽀持的最

第 3 页

⼤⽂件上载⼤⼩。该限制可以防⽌。⼤家都懂的。

解决程序池⽣存周期问题:

在数据库连接字符串中修改:

database=AA

uid=sa

pwd=sa

Pooling=true

MAX Pool Size=1024

Min Pool Size=1

Connection Lifetime=60

第 4 页

⾄于含义基本上从英⽂的意思上⼤家就明⽩了,呵呵。当世猜中然Min Pool Size=1这个设置还有很多讲究。

希望本⽂所述对⼤家的C#程序设计有所帮助。

第 5 页

百度文库

搜索

c#sql运行语句调整30秒超时

百度文库10亿海量资料,查找管理一应俱全

打开APP

原因分析:

查询超时一般来说首先要从sql语句和数据表的结构上找原因,优化sql语句和为数据库的查询字段建索引是最常用的办法。

另外,数据库的查询超时设置一般是sqlserver自己维护的(在你没有修缓友改query wait配置前),只有当你的实际查询时间超过估计查询时间的25倍时,才会超时。

而造成超出估计值那么多的原因有两种可能:

一是估计时间不准确;

二是sql语句涉及到大量占模隐用内存的查询(如排序和哈希 *** 作),内存不够,需要排队等待资源造成的。

解决办法:

A.优化语句,创建/使用合适的索引

B.解决第一个问题的方法,更新要查询表的索引分发统计,保证估计时间的正确性,UPDATE STATISTICS 表名

C.增加内存

如果想手动设置查询超时,可以使用以下语扰码槐句:

sp_configure 'show advanced options', 1 GO RECONFIGURE GO sp_configure 'query wait', 2147483647 GO RECONFIGURE GO


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12506261.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存