原创地址:http://www.cnblogs.com/jfzhu/p/3705703.html

转载请注明出处

和数据库建立一个物理连接是一个很耗时的任务,所以无论是ADO.NET还是J2EE都提供了一个连接池的技术。

一个池其实就是一个列表。在ADO.NET中,有一个Connection Manager,它对每一个connection string都管理着一个可用连接的列表,这个列表就是Connection Pool。

当第一次数据库连接被初始化时,connection manager会创建一个Connection Pool Group。当第一次连接被打开的时候,才会创建第一个connection pool。一个连接正在被使用中,就会从connection pool中移除;如果使用完(被close或dispose),就会再返回到connection pool中去,以待下一个连接请求使用,所以我们要清楚一个概念,close connection的动作只是关闭了逻辑连接,但并没有关闭物理连接。

在ADO.NET中,默认情况下,一个连接返回到connection pool中,会有4到8分钟的空闲时间,超过这个时间,就会关闭物理连接。如果你的程序有很长时间的空闲时间,你应该确保至少有一个可用的数据库连接,可以通过设置Min Pool Size为1来实现。

另外决定是否一个连接使用的是相同connection string的决定性参数为以下几个:

  • Connection Timeout
  • Min Pool Size
  • Max Pool Size
  • Pooling
  • Connection Reset
  • Load Balancing Timeout(Connection Lifetime)
  • Enlist

每当Connection Manager收到一个新的数据库连接请求时,它就会走下面的流程:

最后Entity Framework会帮你管理connection pool,所以不用担心数据库连接的效率问题。

转载于:https://www.cnblogs.com/jfzhu/p/3705703.html

连接池技术 Connection Pooling相关推荐

  1. java 连接池技术_java数据库连接池技术原理(浅析)

    在执行数据库SQL语句时,我们先要进行数据连接:而每次创建新的数据库的连接要消耗大量的资源,这样,大家就想出了数据库连接池技术.它的原理是,在运行过程中,同时打开着一定数量的数据库连接,形成数据连接池 ...

  2. JDBC实例--JDBC连接池技术解密,连接池对我们不再陌生

    一.为什么我们要用连接池技术? 前面的数据库连接的建立及关闭资源的方法有些缺陷.统舱传统数据库访问方式:一次数据库访问对应一个物理连接,每次操作数据库都要打开.关闭该物理连接, 系统性能严重受损. 解 ...

  3. 走进JavaWeb技术世界3:JDBC的进化与连接池技术

    网络访问 随着 Oracle, Sybase, SQL Server ,DB2,  Mysql 等人陆陆续续住进数据库村, 这里呈现出一片兴旺发达的景象, 无数的程序在村里忙忙碌碌, 读写数据库,   ...

  4. DBCP和C3P0实现连接池技术

    DBCP和C3P0实现连接池技术 本文是基于Windows 10系统环境,学习和使用连接池技术: Windows 10 MyEclipse 10 DCBP C3P0 一.连接池技术的基本概念 (1) ...

  5. c3p0连接池技术和Druid连接池技术比较

    开发中经常遇到使用c3p0技术和Druid技术建立的工具类JDBCUtils, 下面将对这两种技术进行简单的介绍. java程序与数据库数据交互的步骤 1. 首先需要与数据库建立连接, 即完成驱动注册 ...

  6. Druid 德鲁伊连接池技术

    Druid 德鲁伊连接池技术 步骤: 去官网去下载一个德鲁伊的jar -> druid-1.0.9.jar 定义配置文件:使用properties文件类型的,名字随便起 手动加载配置文件信息: ...

  7. 实现连接池技术的样例

    1. 在tomcat的安装文件夹下conf文件夹下的context.xml文件加入例如以下代码: <Resource name="jdbc/course" auth=&quo ...

  8. Java Web ConnectionPool (连接池技术)

    根目录下: dbpool.properties 代码: driverClassName=oracle.jdbc.driver.OracleDriverusername=scottpassword=ti ...

  9. jdbc如何使用oracle数据库连接池,使用JDBC连接池技术连接Oracle数据库

    在使用JDBC连接数据库要用到两个jar包 1.编写配置文件 #驱动地址 driverClassName=oracle.jdbc.OracleDriver #连接地址 url=jdbc:oracle: ...

最新文章

  1. IBM强化Watson对商业语言的理解能力—AI辩论一些关键技术首次商业化
  2. UWA官方Demo新增《小米超神》,全面揭秘重度手游的性能表现!
  3. CF 2B The least round way DP+Math
  4. vue php跨域,Vue 项目中遇到的跨域问题及解决方法(后台php)
  5. 【BZOJ3512】DZY Loves Math IV(杜教筛)
  6. 【矩阵乘法】生成树计数(luogu 2109/NOI 2007)
  7. eBPF技术应用云原生网络实践系列之基于socket的service | 龙蜥技术
  8. 嵌入式开发之davinci--- MSB和LSB
  9. Python 爬虫性能相关总结
  10. 分析深圳电信的新型HTTP劫持方式
  11. Muduo 网络编程示例之三:定时器
  12. chart放入panel_使用JPanel将ChartPanel添加到JTabbedPane
  13. 句句真研—每日长难句打卡Day16
  14. 虚拟机NAT模式下 Host ‘192.168.x.1‘ is not allowed to connect to this MySQL server 问题解决!
  15. linux 查看nginx,php-fpm运行用户及用户组
  16. linux块设备驱动简述(Linux驱动开发篇)
  17. 分析EOF究竟是什么
  18. 魔兽争霸3冰封王座添加自定义地图
  19. SPSS Modeler 聚类分析(第十六章)
  20. (Research)肝肿瘤免疫微环境亚型和中性粒细胞异质性

热门文章

  1. office文档、图片、音/视频格式转换工具
  2. 转换时间对象和字符串对象添加时间
  3. mysql数据库中的十进位是什么意思?
  4. JavaWeb总结(六)—Session
  5. 【C#】override,Abstract,Virtual 介绍及区别--转载
  6. falcon存储引擎入门(一)
  7. fourinone学习笔记一(上手demo)
  8. pku 3087 Shuffle'm Up 说的是bfs,其实就是个模拟
  9. 基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 插件标记实现
  10. python人脸识别门禁系统毕设_树莓派人脸识别门禁系统代码以及代码分析——opencv拍照调用FACE++处理...