其实我们一直在使用SqlServer的连接池。在连接字符串中,Pooling为是否启用连接池,默认值为true,表示启用。
与连接池相关的两个重要参数是 Min Pool Size和 Max Pool Size ,分别是池中的最小连接数和池中的最大连接数,默认值分别是0和100。
在我们创建一个连接的实例,并调用Open()方法时,连接池管理程序会在连接池中找到一个可用的连接;当调用Close()方法时,连接池管理程序又将连接返回到连接池中,以供下一次调用Open()方法时使用。
另外,连接字符串中的 Connection Lifetime 为连接池中的连接设置了生命周期。它的默认值为0。当连接被返回到池时,将其创建时间与当前时间作比较,如果时间长度(以秒为单位)超出了由 Connection Lifetime 指定的值,该连接就会被销毁。 这在聚集配置中很有用(用于强制执行运行中的服务器和刚置于联机状态的服务器之间的负载平衡)。零(0)值将使连接池具有最大的连接超时。
通过上面的了解,我们可以看出,即使是最简单的连接字符串,也在使用连接池。
----------------------------------------------------------------------------------------------
ps. 连接字符串关键字的意义:
关键字
默认值
说明
Application Name
不可用
应用程序的名称,或者“.Net SqlClient Data Provider”(如果不提供应用程序名称)。
当为 false 时,将在连接中指定用户 ID 和密码。 当为 true 时,将使用当前的 Windows 帐户凭据进行身份验证。
可识别的值为 true、 false、 yes、 no 以及与 true 等效的 sspi(强烈推荐)。
如果指定了用户 ID 和密码,且集成安全性设置为 true,则用户 ID 和密码将被忽略,并使用集成安全性。
指示应用程序期望的类型系统的字符串值。可能的值包括:
Type System Version=SQL Server 2000;
Type System Version=SQL Server 2005;
Type System Version=SQL Server 2008;
Type System Version=Latest;
如果设置为 SQL Server 2000,将使用 SQL Server 2000 类型系统。 与 SQL Server 2005 实例连接时,执行下列转换:
XML to NTEXT
UDT to VARBINARY
VARCHAR(MAX)、NVARCHAR(MAX) 和 VARBINARY(MAX) 分别与 TEXT、NEXT 和 IMAGE。
如果设置为 SQL Server 2005,将使用 SQL Server 2005 类型系统。 对 ADO.NET 的当前版本不进行任何转换。
如果设置为 Latest,将使用此客户端-服务器对无法处理的最新版本。 这个最新版本将随着客户端和服务器组件的升级自动更新。
用户 ID
不可用
SQL Server 登录帐户。建议不要使用。为保持高安全级别,我们强烈建议您使用 Integrated Security 或 Trusted_Connection 关键字。
User Instance
'false'
一个值,用于指示是否将连接从默认的 SQL Server Express 实例重定向到调用方帐户下运行的运行时启动的实例。
Workstation ID
本地计算机名称
连接到 SQL Server 的工作站的名称。
下表列出了 ConnectionString 内连接池值的有效名称。 有关更多信息,请参见 SQL Server 连接池 (ADO.NET)。