1 / 3
文档名称:

sql超时解决方法.docx

格式:docx   大小:23KB   页数:3
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

sql超时解决方法.docx

上传人:aisheng191 2018/11/6 文件大小:23 KB

下载得到文件列表

sql超时解决方法.docx

相关文档

文档介绍

文档介绍:Net 连接池的配置 Timeout expired. The timeout period elapsed prior to
completion of the operation or the server is not responding. ”
在数据库操作过程中默认打开了连接池,不需要再进行手工配置。这个特性可以使数据
库操作时效率提高,但也要有相应的代码配合 , 才能真正提高程序效率。
1 、连接字符串
中的连接池大小可以通过数据库连接字符串来控制,例如:
string cs =
"server=.;uid=sa;pwd=p;database=pubs;pooling=true;min pool size=5;max
pool size=10"
其中 pooling 表示是否打开连接池,默认为打开,关掉时需要 pooling = false ;
min pool size 表示连接池最少保存几个连接对象;
max pool size 表示连接池最多保存几个连接对象。 ( 最大值不能为 0 ,也不能小于最小值 )
配置好以后,通过 SqlConnection con = new SqlConnection(cs); 即可得到一个属于连接
池的连接对象。
但一定要注意,连接字符串的任何改动,系统都会认为是另一个完全不同的数据库连接,将会
创建新的连接池,这必然会造成更大的系统开销。所以,为了保证某些连接对象属于一个连接池,
连接字符串不能有任何变化,包括大小写,包括空格,都不能有任何变化。
2 、程序中的改动
普通的数据库操作:
SqlConnection con = new SqlConnection(cs);
try
{
();
// 进行各种数据库操作
}
catch(Exception ex){ (); }
finally
{
();
();
}
这个过程很繁琐,每次都要在操作完毕后保证连接对象的关闭和资源释放。在打开连接池特性
以后, finally 中的内容,其实是将连接对象的状态置为关闭,然后放回到连接池中。既然系统知
道要放回连接池,那有没有什么更好的方法呢?
using(SqlConnection con = new SqlConnection(cs))
{
try
{
();
// Do Something......
}
catch(Exception ex){ (); }
}
.Net 中的 using 语句,不光能导入命名空间,还能在程序体内,局部使用某个对象。像上边
代码, con 的作用域只有 using 对应的大括弧这么大。更神奇的是, using 可以在对象作用域结
束时,自动调用 () 将对象释放,所以以上代码中,没有 () 和
() ,同样可以释放资源,放回连接池,省了 finally 和手工关闭的麻烦。但同时需要
注意, using 既然是在结束作用域时是自动调用对象的