zoukankan      html  css  js  c++  java
  • 连接池技术 Connection Pooling

    原创地址: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,所以不用担心数据库连接的效率问题。

  • 相关阅读:
    toj 2975 Encription
    poj 1797 Heavy Transportation
    toj 2971 Rotating Numbers
    zoj 2281 Way to Freedom
    toj 2483 Nasty Hacks
    toj 2972 MOVING DHAKA
    toj 2696 Collecting Beepers
    toj 2970 Hackle Number
    toj 2485 Card Tric
    js页面定位,相关几个属性
  • 原文地址:https://www.cnblogs.com/jfzhu/p/3705703.html
Copyright © 2011-2022 走看看