ADO.NET 中引入了数据库连接池的概念,其实默认我们在连接数据库的时候已经用了数据库连接池。比如
![None.gif](/Images/OutliningIndicators/None.gif)
![None.gif](/Images/OutliningIndicators/None.gif)
![None.gif](/Images/OutliningIndicators/None.gif)
![None.gif](/Images/OutliningIndicators/None.gif)
![None.gif](/Images/OutliningIndicators/None.gif)
代码中两种数据库连接字符串的效果是一样的。都是说要启用连接池,池的最小时0,最大是100,每一个连接用完放回池的时候,会重置其上下文。对这种做法,有几点很容易误解
1. Min Pool Size 的意义:假设这个地方改为50 的话。
我早期的理解: 在数据库连接总的数目不超过50的时候,根本不使用池的概念。也就是说数据库的连接时线形的从1 随着用户的新连接逐渐加到50 。超过50 之后,开始有池的概念。新的连接会重用已有的连接
结果发现这个想法是错误的。
如果我代码改为
![None.gif](/Images/OutliningIndicators/None.gif)
在查询分析器中用 sp_who 看了一下,一下子就多了100个。
![emsmileo.gif](/Emoticons/emsmileo.gif)
![cnn.JPG](https://i-blog.csdnimg.cn/blog_migrate/721f6da6ac4406c5c71bb7cf93efa8ce.jpeg)
这一点确实出乎我的意料。
然后我验证了一下 COM+ 的对象池确实也是在第一次构造的时候用min pool size 实例化很多对象
![ExpandedBlockStart.gif](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](/Images/OutliningIndicators/ContractedBlock.gif)
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![ExpandedBlockEnd.gif](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
结果 COM+ app 配置pool 的时候,在对象第一次调用的时候会在系统日志中写对应min pool size 数目的日志。
![emthup.gif](/Emoticons/emthup.gif)
下次再提关于connection reset, 这个属性的影响也很大。;)