博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.net数据库连接池(转载)
阅读量:6909 次
发布时间:2019-06-27

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

如何实现连接池?

确保你每一次的连接使用相同的连接字符串(和连接池相同);只有连接字符串相同时连接池才会工作。如果连接字符串不相同,应用程序就不会使用连接池而是创建一个新的连接。

优点

使用连接池的最主要的优点是性能。创建一个新的数据库连接所耗费的时间主要取决于网络的速度以及应用程序和数据库服务器 的(网络)距离,而且这个过程通常是一个很耗时的过程。而采用数据库连接池后,数据库连接请求可以直接通过连接池满足而不需要为该请求重新连接、认证到数 据库服务器,这样就节省了时间。

缺点

数据库连接池中可能存在着多个没有被使用的连接一直连接着数据库(这意味着资源的浪费)。

技巧和提示

1. 当你需要数据库连接时才去创建连接池,而不是提前建立。一旦你使用完连接立即关闭它,不要等到垃圾收集器来处理它。

2. 在关闭数据库连接前确保关闭了所有用户定义的事务。

3. 不要关闭数据库中所有的连接,至少保证连接池中有一个连接可用。如果内存和其他资源是你必须首先考虑的问题,可以关闭所有的连接,然后在下一个请求到来时创建连接池。

连接池FAQ

1. 何时创建连接池?

当第一个连接请求到来时创建连接池;连接池的建立由数据库连接的连接字符创来决定。每一个连接池都与一个不同的连接字符串相关。当一个新的连接请求到来时如果连接字符串和连接池使用的字符串相同,就从连接池取出一个连接;如果不相同,就新建一个连接池。

2. 何时关闭连接池?

当连接池中的所有连接都已经关闭时关闭连接池。

3. 当连接池中的连接都已经用完,而有新的连接请求到来时会发生什么?

当连接池已经达到它的最大连接数目时,有新的连接请求到来时,新的连接请求将放置到连接队列中。当有连接释放给连接池时,连接池将新释放的连接分配给在队列中排队的连接请求。你可以调用close和dispose将连接归还给连接池。

4. 我应该如何允许连接池?

对于.NET应用程序而言,默认为允许连接池。(这意味着你可以不必为这件事情做任何的事情)当然,如果你可以在SQLConnection对象的连接字符串中加进Pooling=true;确保你的应用程序允许连接池的使用。

5. 我应该如何禁止连接池?

ADO.NET默认为允许数据库连接池,如果你希望禁止连接池,可以使用如下的方式:

1) 使用SQLConnection对象时,往连接字符串加入如下内容:Pooling=False;

2) 使用OLEDBConnection对象时,往连接字符串加入如下内容:OLE DB Services=-4;

转载于:https://www.cnblogs.com/sandea/p/3293693.html

你可能感兴趣的文章
【linux】——linux中各个目录的意义
查看>>
程序人生--2005年(30)
查看>>
开源项目之Android StandOut(浮动窗口)
查看>>
分享:树状分类结构,数据库构建(预排序历遍算法)
查看>>
IIS命令
查看>>
学习 easyui 之三:panel 分析
查看>>
BSTR、char*和CString转换
查看>>
盘点影视剧中的那些经典“清流男”
查看>>
CDC,CPaintDC,CClientDC,CWindowDC
查看>>
信号退出【Linux学习笔记】kill及kill -9的用法及如何实现进程的优雅退出
查看>>
搜索引擎是怎么删除重复网页的
查看>>
Objective-C规范注释心得——同时兼容appledoc(docset、html)与doxygen(html、pdf)的文档生成...
查看>>
ARCGIS RUNTIME FOR IOS总结(六)
查看>>
批量scp脚本——从多台机器拷贝文件
查看>>
Oracle 11g安装图文攻略
查看>>
用VBA宏从一个工作薄复制内容到另一个工作薄
查看>>
Android架构分析之使用自定义硬件抽象层(HAL)模块
查看>>
VC6.0启动File-open和Project-add file to project崩溃的解决方法
查看>>
死锁线程探讨Java中的死锁现象
查看>>
Java HashMap的死循环 以及 LRUCache的正确实现
查看>>