您的位置:首页 > 其它

使用连接池提高应用程序性能

2008-10-22 19:15 162 查看
连接池在哪里?

连接池是一种客户端技术.

客户端意味着连接池位于执行 DbConnection 对象 Open 语句的计算机上.

创建和打开连接池

连接池的使用体现在连接字符串中.

如:

SqlConnectionStringBuilder connbuilder = new SqlConnectionStringBuilder();

connbuilder.DataSource = "localhost";

connbuilder.UserID = "user";

connbuilder.Password = "password";

connbuilder.Pooling = true;

connbuilder.ConnectTimeout = 10;

connbuilder.MinPoolSize = 5;

connbuilder.MaxPoolSize = 20;

SqlConnection conn = new SqlConnection(connbuilder.ConnectionString);

conn.Open();

影响连接池的参数

bool Pooling 如果设置为true,则请求从连接池返回连接,默认为true。

int MinPoolSize 连接池的最小连接数,默认为 0 。在应用程序即使长时间处于未激活状态,仍然要求它

能稳定快速地进行响应,一般将这个值设为一个较小的值,比如 5 。

int MaxPoolSize 连接池的最大连接数,默认为100。

int ConnectTimeout 连接超时,默认为15秒。

何时创建连接池

在实例化第一个连接时会创建一个连接池组对象,它是一个管理连接池的对象。

但只有打开第一个连接时才会创建第一个连接池。

连接在连接池中生存的时间是多少

在需要使用连接时,会从连接池中提取一个可用连接,在使用完毕后,会将连接返回给连接池中的可用连接列表。

在一个连接返回连接池后,它的生存时间为 4 到8 分钟(一个随机的时间)。连接池不会无限期地保存空闲的连接。

使用 using 语句防止连接泄漏造成超出连接池容量

using 块将自动调用 Dispose 方法。

如:

SqlConnectionStringBuilder connbuilder = new SqlConnectionStringBuilder();

connbuilder.DataSource = "localhost";

connbuilder.UserID = "user";

connbuilder.Password = "password";

using(SqlConnection conn = new SqlConnection(connbuilder.ConnectionString))

{

conn.Open();

using(SqlCommand cmd = conn.CreateCommand())

{

cmd.CommandText = "";

cmd.ExecuteNonQuery();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: