7.11 连接池概述

  在应用程序与数据库交互中,建立和关闭数据库连接都是非常消耗资源的过程。如果一个应用程序需要大量的与数据库进行交互,则很有可能造成假死,以及崩溃的情况。使用连接池能够提高应用程序的性能。

  连接池是SQL Server或OLEDB数据源的功能,它可以使特定的用户重复使用连接,数据库连接池技术的思想非常简单,将数据库连接作为对象存储在一个Vector对象中,一旦数据库连接建立后,不同的数据库访问请求就可以共享这些连接,这样,通过复用这些已经建立的数据库连接,可以极大地节省系统资源和时间。连接池的主要操作如下所示:
1)建立数据库连接池对象。
2)对于一个数据库访问请求,直接从连接池中得到一个连接。如果数据库连接池对象中没有空闲的连接,且连接数没有达到最大,创建一个新的数据库连接。
3)存取数据库。
4)关闭数据库,释放所有数据库连接。
5)释放数据库连接池对象。
注意:在关闭数据库这一步中,并非真正的关闭,而是将其放入空闲队列中。如实际空闲连接数大于初始空闲连接数则释放连接。

  当一个网站用户需要同数据库之间进行交互时,服务器会为网站用户建立一个业务对象,每个业务对象维护自身的连接,这些业务对象自身会创建连接。当用户无需该业务对象时,业务对象会释放连接,如图7-25所示。
多层构架应用程序
图7-25 多层构架应用程序
  当业务对数据库进行复杂的操作,并不停的打开和断开数据库连接,这样的操作会造成应用程序性能降低,因为重复的打开和断开数据库连接是非常消耗资源的,而使用连接池则可以避免这样的问题。连接池并不会真正的完全的关闭数据库与应用程序的连接,而将这些连接存放在应用程序连接池中。当一个新的业务对象产生时,会在连接池中检查是否已有连接,若无连接,则会创建一个新连接,否则会使用现有的匹配的连接,这样就提高了性能,如图7-26所示。
使用连接池
图7-26 使用连接池
  使用连接池能够提升应用程序的性能,特别是开发Web应用程序时,Web应用程序通常需要频繁的与数据库之间进行交互,应用程序池能够解决Web引用中假死等情况,也能够节约服务器资源。但是,在创建连接时,良好的关闭习惯也是非常必要的。

加支付宝好友偷能量挖...


评论(0)网络
阅读(154)喜欢(0)Asp.Net/C#/WCF