数据库连接字符串与连接池

ado.net下 每次操作数据库 都会用到数据库连接串来连接数据库  每次操作完数据库后都需要关闭连接,否则会严重影响性能.

 

USE [master] 
SELECT * FROM sysprocesses WHERE dbid IN
(
SELECT dbid FROM sysdatabases WHERE NAME =DatabaseName)

 

这个查询是查看数据库连接数的

关闭连接的方式可以用using语句,也可以用close或者dispose方法.默认情况下,Pooling是为true的.这里的关闭实际上并不是关闭连接,只是让数据库连接返回连接池中,下次需要的时候在从中取出.这里我的理解为连接池类似于一个中间件的容器,当第一次open的时候,pooling会保留此连接,close/dispose连接的时候,这个动作就返回pooling这个容器.

这样的意义的在于可以减少无限制的创建的相同的字符串空间然后open,如果并发数很大的情况下,Pooling只是重用连接字符串而已,实际上是不会重新new一个.前提是连接配置是相同的一个.

默认情况下,trusted_connection/Integrated Security为false,需要在连接字符串里指定ID和密码,如果设置为true,则使用当前Windows帐户进行验证.这种情况下可能会产生多个数据池,身份验证的连接会产生一个pooling,然后与数据库连接会继续产生一个Pooling,一台服务器托管多个网站库回产生池碎片.msdn上的解决办法是连接字符串里的初次连接数据库为master库,然后open连接后,然后在SQL语句中添加use database语句重新指定库,这样来减少池碎片的产生.

posted @ 2009-10-22 11:00  绣戚ャ儍瀦ɑ  阅读(445)  评论(0编辑  收藏  举报