打开与关闭数据库连接是比较费时的。为此,ADO.NET自动将数据库连接存放在连接池中。连接池可以大大提高数据读取性能,因为不必等待建立全新的数据库连接,而可以直接利用连接池中现成的数据库连接。关闭连接时,并不是实际关闭连接,而是将连接标为未用,放在连接池中,以备下一次启用。如果在连接字符串中提供相同的细节(同样的数据库、用户名、口令等),则可以取得并返回池中的连接。然后可以用这个连接访问数据库。
使用SqlConnection对象时,可以在连接字符串中指定max pool size表示连接池中允许的最大连接数,默认为100,也可以指定min pool size表示连接池中允许的最小连接数,默认为0。
在连接字符串中设置代码如下: string cstr=“server=\\audi\server;database=oa;uid=sa;pwd=sa;max pool size=10;min pool size=5;connection timeout=10”
SqlConnection con=new SqlConnection(@cstr); 上面的连接字符串中对连接池的设置表示最初在连接池中生成五个SqlConnection对象并且连接池中最多可以存储10个SqlConnection对象。如果要打开新的SqlConnection对象时,连接池中的对象全部都在使用中,则请求要等待一个SqlConnection对象关闭,然后才返回对象,供程序使用。如果请求等待时间超过ConnectionTimeout属性指定的秒数,则会抛出异常。
监视链接池化
要监视应用程序对链接池化的应用情况,可以使用随SQL Server发行的Profiler工具,或随微软Windows 2000发行的性能监视器。 要利用SQL Server Profiler 监视链接池化,操作如下:
|
|