多次前往Db
本文关键字:Db | 更新日期: 2023-09-27 18:05:54
我有那些复选框列表和中继器组(大约8个控件需要从我的数据库加载),对于每个控件,我在我的数据访问层中有一个方法来选择信息并将其返回到我的控件。
但是有一个页面,我需要所有这8个控件同时加载…因此,每个方法都将访问数据库,我理解这是影响性能的原因。所以我可以有一个新方法来创建连接并打开它,然后我可以调用多个方法来访问数据库并加载信息,然后在结束时关闭连接。
有什么想法,如果这8连接是好的性能?你怎么看这个想法,怎样才能把它应用到实际中去呢?
除非你的应用是在一个高流量的网站上,否则我不会担心它,直到它成为一个问题。如果出现问题,返回并稍后修复它相对简单,但老实说,这听起来像是过早优化的情况。
如果您使用本地SqlClient访问数据库,使用完全相同的连接字符串,它们将共享一个连接池。ADO.NET默认启用连接池。除非您显式禁用它,否则池程序会在应用程序中打开和关闭连接时优化连接。
根据你的问题如果你这样做了
using (SqlConnection...)
{
// all your data calls
}
或7个单独的调用,每次打开和关闭(或使用"using"),正如@Tim Coker提到的,任何性能差异都将是最小的
Edit: MSDN上有一些过时的文章确实说"尽可能晚地打开连接并尽快关闭它",所以你可以做一系列快速的方法调用,每次打开并快速关闭连接,但是,无论如何,将共享同一个池。
如果数据是只读的,则可以缓存它。
那么,每次访问数据库将只进行一次。
打开和关闭连接的开销非常小,所以您不应该担心。