zoukankan      html  css  js  c++  java
  • ADO.Net连接池>附

    l由于每次正常连接数据库都会至少执行3个操作(1.登录数据库服务器2.执行操作3.注销用户),所以每次通过Connection向数据库服务器申请一个连接都比较耗时。【ado.net默认启用了连接池】
    l演示:有池没池的差别(见备注1.)通过事件查看器查看效果。
    l为了解决上述问题:ADO.Net采用了连接池的概念。
    l*如何清空连接池?Connection的静态方法ClearAllPools()、 ClearPool()
    l什么情况下需要禁用连接池?
    •一般都不禁用。尤其是asp.net之类的程序,n多个用户频繁访问,但是大多数用户访问时采用的都是同一个连接字符串
    •但如果某个应用程序有多个客户端,每个客户端访问时采用的都是各自的连接字符串,这时如果采用连接池,虽然每次打开连接的速度会变快,但是由于“池”的问题同时会保存多个打开的连接对象。

    Ado.net连接池使用总结:

    •1.第一次打开连接会创建一个连接对象。
    •2.当这个连接关闭时(调用Close()方法时)会将当前那个连接对象放入池中。
    •3.下一个连接对象,如果连接字符串与池中现有连接对象的连接字符串完全一致,则会使用池中的现有连接,而不会重新创建一个。
    •4.只有对象调用Close(),的时候才会放入池中,如果一个连接对象一直在使用,则下次再创建一个连接对象发现池中没有,也会再创建一个新连接对象。
    •在池中的连接对象,如果过一段时间没有被访问则自动销毁。
     
     

    如果连接池中有对象,con.Open()的意思是去连接池中把对象取出来;

    Close()看是关闭,其实是把Innerconnection放到了连接池中了。

  • 相关阅读:
    MYSQL-------安全等于<=>
    MYSQL-------转义简单说明
    Linux命令 sed
    长目录如何快速cd
    SQLAlchemy(增删改查)
    PostgreSQL主键约束混乱
    Python实现智能回复
    Python 腾讯云发送短信
    Python3 Twilio 发送短信
    Elasticsearch 多条件查询
  • 原文地址:https://www.cnblogs.com/yaoxc/p/3137418.html
Copyright © 2011-2022 走看看