数据访问对象:单例还是许多小对象?

时间:2009-11-26 20:17:58

标签: language-agnostic singleton data-access

在开发一个可以进行大量数据访问的应用程序(web,win,等等)时,最好是在请求的长度内保持数据访问对象的开放性(即连续执行多项操作,然后在关闭时关闭它)你完成了,还是继续打开和关闭新的?

protected aDataContext dc = new aDataContext();

VS

private aObject GetInfo(...) {...}

我认为前者会更好地表现;但这似乎是一种不好的做法。

2 个答案:

答案 0 :(得分:3)

更好地使用连接池。 保持有限数量的连接尽可能多地打开。 打开连接是昂贵的,但有百万个开放连接可能会杀死你的服务器。 你应该对你的场景进行基准测试以获得最佳效果....

答案 1 :(得分:2)

通常,您应该为每个工作单元打开一个新连接,使用它然后尽快关闭它。内部.NET(或ADO或ODBC或其他)将为您汇集连接,只要连接字符串相同,因此它实际上非常有效。还有其他问题需要考虑 - 尤其是事务 - 但总的来说,最好遵循这种open-do-close模式,让.NET管理连接池。