我应该实现自己的连接池方案吗?

时间:2010-07-12 12:28:04

标签: .net asp.net dispose

我应该编写自己的连接池方案吗?

(问题再次被重写,所以我可以赞成人们的答案)

2 个答案:

答案 0 :(得分:5)

我强烈建议您首先不要将连接放在缓存中

每当您需要连接时,只需打开一个新连接(尽可能晚)。当你完成关闭/处理它(尽可能早)。您可能知道确保此行为的最简单模式是using块。

打开和关闭池中的连接非常便宜,默认情况下启用连接池。让连接池处理诸如缓存之类的细节:这就是它的用途,如果你自己做的话,那就没有任何好处 - 还有很多潜在的陷阱。

答案 1 :(得分:2)

我建议您单独保留请求缓存以处理ADO.NET连接并使用connection pooling(这是默认设置)。只需在您想要的任何地方执行此操作,它将正确关闭/处置:

using (SqlConnection cn = new SqlConnection(connectionString))
{
    using (SqlCommand cm = new SqlCommand(commandString, cn))
    {
        cn.Open();
        cm.ExecuteNonQuery();
    }
}