zoukankan      html  css  js  c++  java
  • ADO.NET笔记——使用连接池

    相关知识:

    1. 连接池的意义:
      • 应用程序往往涉及大量的,并发的数据访问操作
      • 数据库服务器能够同时维系的连接数量非常有限。如果某个数据库访问操作不及时关闭连接,就会减少其他调用对数据库访问的机会。因此,一般需要尽可能晚的打开连接,尽可能早的关闭连接
      • 反复的创建和销毁连接对象,或者反复的打开和关闭实际的连接(从应用程序到数据库服务器,可能跨网络),其开销是比较大的,也是不划算的
      • 采用连接池,在池中缓存若干个链接对象。如果有调用需要使用连接,则从池中取出一个;调用完成后,并不销毁连接,而是将连接放回池中,供其它调用使用
      • 这样,便大大减少了创建、销毁对象以及重建远程连接的开销
    2. 配置ADO.NET连接池:
      • 在一个应用程序中,一个连接字符串对应一个连接池。不同的连接字符串对应着不同的连接池(即便只是大小写不同,或者某个字符差异)。尽量不要子一个应用程序中创建太多的连接池
      • 不同的应用程序,即使连接字符串相同,也对应着不用的连接池
      • 连接字符串中指定 MaxPoolSize / MinPoolSize 属性,可以指定池中最大以及最少容纳的连接对象数量
            Server=Joe-PC;database=AdventureWorks_WroxSSRS2012;uid=sa;pwd=rootMaxPoolSize=10;MinPoolSize=3

        上述连接字符串将导致连接池中至少保持3个连接对象;如果3个不够用的话,则最多可以创建至10个对象

      • 调用连接对象的Close()函数,实际上是将该连接对象放回池中以便重用
    3. 使用ConnectionStrings配置节:
      • 如果在代码中多出直接定义连接字符串,往往会造成细微的字面差异,这将导致多个连接池的创建
      • 此外,连接字符串中数据库的名称由可能发生变化,直接卸载代码中,将会导致未来不得不重新编译代码
      • .NET提供了应用程序配置文件,其中的<ConnectionStrings>可以用于在代码外定义连接字符串
      • 在程序内通过ConfigurationManager类的ConnectiongStrings静态属性,可以获得在配置文件中定义的连接字符串

    代码示例:

    1. App.Config文件:
      <connectionStrings>
              <add name="db" connectionString="server=Joe-PC;database=AdventureWorks_WroxSSRS2012;uid=sa;pwd=root;"/>
      </connectionStrings>
    2. 在代码中访问连接字符串:
          string strConn = ConfigurationManager.ConnectionStrings["db"].ConnectionString;

      (要先添加System.Configuration.dll的引用,以及System.Configuration命名空间)

  • 相关阅读:
    Linux系统挂载点与分区的关系(转载)
    读书笔记深入linux内核架构Chapter 2 part2
    读书笔记深入linux内核架构Chapter 2 part1
    读书笔记深入linux内核架构Chapter9
    读书笔记深入linux内核架构Chapter8part2
    鞋匠的烦恼
    和最大的连续子数组
    wxLog 的使用
    suffix trie
    trie
  • 原文地址:https://www.cnblogs.com/chenguangqiao/p/4373540.html
Copyright © 2011-2022 走看看