VB.net 链接池

       上篇博客介绍了临时表的使用,以及它的生命周期和链接池的关系。那么为了能更好的把握临时表的产生和消亡,本篇博客就介绍Vb.net链接池。在打开和关闭数据库链接时的耗费的资源是很是高的。那么在程序须要频繁的操做数据库时就将影响程序的性能。那么为了提升资源的利用率,以及程序的性能VB.NET中就使用了一种链接数据库的机制,即链接池。先看一张图:数据库

 

 

        你们从图中能够看出,链接池是保存与数据库内部链接的一个区域,它和应用程序是不直接相连的。换句话说就是解耦了。那么它的工做机制是这样的:应用程序须要访问数据库时,先建立一个Sqlconnection对象,而后去链接池中匹配合适的链接。若是存在合适的链接就直接使用,当没有合适的链接时才从新建立一个链接。那么当建立链接的对象Close或者Dispose时,程序也不销毁链接而是归还给链接池,以便下次使用。可是对于链接池咱们还须要作一些更细致的了解。例如:匹配链接、内部链接什么时候被销毁,什么时候建立等等问题。性能

       如何匹配链接:在链接池中认为,只有链接字符串彻底同样时才是相同的链接。例如咱们在机房收费系统中用的链接字符串只有一个。也就是说,每个内部链接都是同样的,只要链接池中存在内部链接就能够被Sqlconnection匹配使用。连接池的行为实在SQLConnection对象的ConnectionString属性来控制的,接下来了解其中的参数。  spa

       MinPool Size(链接池的最小容量):链接池容许的链接数的最小值,其缺省值为0。当连接池中空闲的内部链接大于最小容量时,多余的链接将被销毁。即链接池中至少会保持最小容量的链接数。.net

       Connection Lifetime(连接生存时间):当一个链接被返回到链接池时,它的建立时间会与当前时间进行对比。若是这个时间跨度超过了链接的有效期的话,链接就被取消。其缺省值为0,即不限时间。同时须要知道的是只有在链接被释放回链接池时才检查该链接的Connection lifetime,也就是说当链接被使用或者空闲时是不检查Connection lifetime。因此,大部分链接的生存时间都要大于规定的值。另外,链接池中最小容量的链接时不被connection lifetime限制的。对象

       Max pool size(链接池最大链接数):链接池容许的最大链接数,当链接池中存在最大链接数时,新的链接将不被创建,该链接请求就要等候直到有空闲的链接。这里须要很是注意DataReader的使用。生命周期

       综合以上内容,咱们再回顾一下上一篇博客临时表的使用问题。由于在机房收费系统中咱们使用的链接字符串仅有一个,即认为内部链接都是同样的。又由于临时表的生存周期依赖内部链接,并且咱们没法控制内部链接的实际销毁实际那。因此咱们的最小链接池的数量不能是0,即保证有效的内部链接存在,这就保持了临时表的生存,不会再程序运行中间就被销毁。那么,到这里临时表和链接池的介绍就完结了。下面是,我认为合理的链接字符串:资源

"Datasource=.\SQLExpress;Initial Catalog="数据库名";Connection Lifetime= 10;Min pool size=1;User ID=sa;password=123456"字符串

相关文章
相关标签/搜索