ADO.NET笔记——使用连接池
相关知识:
- 连接池的意义:
- 应用程序往往涉及大量的,并发的数据访问操作
- 数据库服务器能够同时维系的连接数量非常有限。如果某个数据库访问操作不及时关闭连接,就会减少其他调用对数据库访问的机会。因此,一般需要尽可能晚的打开连接,尽可能早的关闭连接
- 反复的创建和销毁连接对象,或者反复的打开和关闭实际的连接(从应用程序到数据库服务器,可能跨网络),其开销是比较大的,也是不划算的
- 采用连接池,在池中缓存若干个链接对象。如果有调用需要使用连接,则从池中取出一个;调用完成后,并不销毁连接,而是将连接放回池中,供其它调用使用
- 这样,便大大减少了创建、销毁对象以及重建远程连接的开销
- 配置ADO.NET连接池:
- 在一个应用程序中,一个连接字符串对应一个连接池。不同的连接字符串对应着不同的连接池(即便只是大小写不同,或者某个字符差异)。尽量不要子一个应用程序中创建太多的连接池
- 不同的应用程序,即使连接字符串相同,也对应着不用的连接池
- 连接字符串中指定 MaxPoolSize / MinPoolSize 属性,可以指定池中最大以及最少容纳的连接对象数量
Server=Joe-PC;database=AdventureWorks_WroxSSRS2012;uid=sa;pwd=rootMaxPoolSize=;MinPoolSize=
上述连接字符串将导致连接池中至少保持3个连接对象;如果3个不够用的话,则最多可以创建至10个对象
- 调用连接对象的Close()函数,实际上是将该连接对象放回池中以便重用
- 使用ConnectionStrings配置节:
- 如果在代码中多出直接定义连接字符串,往往会造成细微的字面差异,这将导致多个连接池的创建
- 此外,连接字符串中数据库的名称由可能发生变化,直接卸载代码中,将会导致未来不得不重新编译代码
- .NET提供了应用程序配置文件,其中的<ConnectionStrings>可以用于在代码外定义连接字符串
- 在程序内通过ConfigurationManager类的ConnectiongStrings静态属性,可以获得在配置文件中定义的连接字符串
代码示例:
- App.Config文件:
<connectionStrings>
<add name="db" connectionString="server=Joe-PC;database=AdventureWorks_WroxSSRS2012;uid=sa;pwd=root;"/>
</connectionStrings> - 在代码中访问连接字符串:
string strConn = ConfigurationManager.ConnectionStrings["db"].ConnectionString;
(要先添加System.Configuration.dll的引用,以及System.Configuration命名空间)
ADO.NET笔记——使用连接池的更多相关文章
- java学习笔记—c3p0连接池与元数据分析(42)
第一步:导入c3p0包 第二步:在classpath目录下,创建一个c3p0-config.xml <?xml version="1.0" encoding="UT ...
- java学习笔记—标准连接池的实现(27)
javax.sql.DataSource. Java.sql.* DataSource 接口由驱动程序供应商实现.共有三种类型的实现: 基本实现 - 生成标准的 Connection 对象 – 一个D ...
- ADO.NET连接池机制
为什么需要连接池 剖析一个技术第一个要问的是,这项技术为什么存在. 对于每一个到SQL Server的连接,都需要经历TCP/IP协议的三次握手,身份认证,在SQL Server里建立连接,分配资源等 ...
- ADO.NET 连接池 Session 状态分析
ADO.NET 中提供连接池避免 在业务操作中频繁打开,关闭连接. 当客户端释放连接后,连接池并未真正将数据库连接资源释放 , 而是根据连接字符串特征,将资源放到连接池中, 方便下次重用. 因此问题来 ...
- 第19课-数据库开发及ado.net ADO.NET--SQLDataReader使用.SqlProFiler演示.ADoNET连接池,参数化查询.SQLHelper .通过App.Config文件获得连接字符串
第19课-数据库开发及ado.net ADO.NET--SQLDataReader使用.SqlProFiler演示.ADoNET连接池,参数化查询.SQLHelper .通过App.Config文件获 ...
- SQL Server 连接池 (ADO.NET) MSDN
连接到数据库服务器通常由几个需要很长时间的步骤组成. 必须建立物理通道(例如套接字或命名管道),必须与服务器进行初次握手,必须分析连接字符串信息,必须由服务器对连接进行身份验证,必须运行检查以便在当前 ...
- .NET连接池的配置 【转】
ADO.Net 在数据库操作过程中默认打开了连接池,不需要再进行手工配置.这个特性可以使数据库操作时效率提高,但也要有相应的代码配合,才能真正提高程序效率. 1.连接字符串 ADO.Net 中的连接池 ...
- 非常老的话题 SQLSERVER连接池
原文:非常老的话题 SQLSERVER连接池 非常老的话题 SQLSERVER连接池 写这篇文章不是说要炒冷饭,因为园子里有非常非常多关于SQLSERVER连接池的文章,但是他们说的都是引用MSDN里 ...
- EFCore连接池的坑 差点晚年不保
长话短说 上个月公司上线了一个物联网数据科学项目,我主要负责前端接受物联网事件,并提供 参数下载. webapp 部署在Azure云上,参数使用Azure SQL Server存储. 最近从灰度测试转 ...
随机推荐
- jquery动态生成css样式表
$(function(){ var a=new Date().getTime();// 实时加载,目的是清除缓存 $("head").append('<link ...
- 利用js、css、html固定table的列头不动
1.CSS <style type="text/css"> #scroll_head { position: absolute; display: none; } &l ...
- hadoop2 作业执行过程之作业提交
hadoop2.2.0.centos6.5 hadoop任务的提交常用的两种,一种是测试常用的IDE远程提交,另一种就是生产上用的客户端命令行提交 通用的任务程序提交步骤为: 1.将程序打成jar包: ...
- Asynctask的使用及理解
1.对于耗时的操作,我们的一般方法是开启“子线程”.如果需要更新UI,则需要使用handler 2.如果耗时的操作太多,那么我们需要开启太多的子线程,这就会给系统带来巨大的负担,随之也会带来性能方面的 ...
- 【Open Search产品评测】-- 淘点点:基于OpenSearch,轻松实现一整套O2O类搜索解决方案
[Open Search产品评测]-- 淘点点:基于OpenSearch,轻松实现一整套O2O类搜索解决方案 [使用背景] 我们淘点点团队应该可以算是内网首批使用opensearch来搭建应用 ...
- 【Mood-4】心静是一门艺术
到现在工作还没有着落,心里面反而比以前平静,以前也知道自己的水平 属于一瓶不满,半瓶咣当的那种情况,但是那时候的自己总是觉得自己的综合水平可能会弥补一下自己在技术上的缺失,但是,现在看来,太过于自信, ...
- 深入理解HTML5:语义、标准与样式
<深入理解HTML5:语义.标准与样式> 基本信息 作者: (美)布拉德福(Bradford,A.) 海涅(Haine,P.) 译者: 高京 出版社:电子工业出版社 ISBN:978712 ...
- 利用css使文本在限制几行之后隐藏
想要在布局中显示一段新闻的标题或是内容,特别是内容,东西超多...下面的方法就是通过css来控制文本显示多少的: 首先在html中写上: <p class="ellipsis" ...
- highchairts柱状图显示数值并且带单位
$(target).highcharts({ chart: { type: 'bar' }, colors: [ "#1ab394" ], title: { text: title ...
- js里正则表达式详解
详细内容请点击 正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/ ...