博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
将不确定变为确定~真的是SqlDataReader引起的超时?
阅读量:7055 次
发布时间:2019-06-28

本文共 582 字,大约阅读时间需要 1 分钟。

在进行大数据量读操作时,一般我们会选择SqlDataReader,或者不会使用DataSet,原因就不说了,在我项目中遇到一个很奇怪的问题,当sql执行时候过长时,系统被抛一个超时,链接池已满的提示。

网上的解决方法事实上大分部是针对“connection time out“的,即链接超时,它一般解决方案是:

1 为SQL连接串添加这个:Connect Timeout=10000 //SQL连接超时时间

2 为SQL连接串添加这个:Max Pool Size = 512 //最大连接池

事实上它们解决的是连接超时问题,而有时,你的程序可能是在SQL解释时间比较长,设置上面两个就没有用了,SQL的解释执行由SqlCommand对象去控制

所以,我们正确的做法应该是设置它的超时时间,代码如下:

1  comm.CommandText = sb.ToString();2   conn.Open();3   comm.CommandTimeout = 0;4   SqlDataReader reader = comm.ExecuteReader(CommandBehavior.CloseConnection);

程序再运行,问题解决,呵呵!

所以,解决问题应该是对正下药才行!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:,如需转载请自行联系原博主。

你可能感兴趣的文章
刘硕琛_下一代企业安全管理
查看>>
备战网络工程师认证考试:历年真题合集
查看>>
xargs
查看>>
RelativeLayout相对布局
查看>>
一个基于Python 装饰器的缓存库——wrapcache
查看>>
linux eclipse 离线安装svn插件subclipse
查看>>
第二篇,整体架构dbutils dao篇
查看>>
把IP转成整数
查看>>
Android程序员眼中世界上最遥远的距离
查看>>
vim
查看>>
MacOs 开发环境设置
查看>>
Mac os远程登录Linux与文件传输
查看>>
Java随机数使用注意事项
查看>>
AngularJs学习日记[3]:ng-init
查看>>
git 删除错误提交的commit
查看>>
java泛型中T、E、K、V、?等含义
查看>>
python 运行 MySQL-python libmysqlclient.so.18: cannot open shared object file: No such file
查看>>
视频播放器推荐
查看>>
[root@AY140716161543837722Z ~]# man top
查看>>
C语言基础及指针⑩预编译及jni.h分析
查看>>