Db的多次旅行

时间:2011-08-18 14:54:38

标签: c# asp.net sql

我有那些CheckBox列表和中继器(需要从我的数据库中加载大约8个控件),对于每个控件,我在DataAccess Layer中有一个方法来选择信息并将其恢复到我的控制中。 / p>

但是有一个页面,我需要同时加载所有这8个控件..所以每个方法都将是一个数据库之旅,我明白这是影响性能的因素。所以我可以像创建连接并打开它的新方法一样,然后我可以调用多个方法来访问数据库并加载信息,然后在最后关闭连接。

任何想法,如果这8个连接可以提高性能?你怎么看待这个想法以及如何以实际的方式应用它?

4 个答案:

答案 0 :(得分:1)

除非你的应用程序将在一个高流量的网站上,否则我不会担心它会成为一个问题。如果出现问题,回过头来修复它会比较简单,但老实说,这听起来像是过早优化的情况。

答案 1 :(得分:0)

如果数据是只读的,您可以缓存它。

然后,每次访问数据库只会进行一次。

答案 2 :(得分:0)

如果您使用本机SqlClient访问数据库,则使用完全相同的连接字符串,它们将共享连接池。 。默认情况下,在ADO.NET中启用连接池。除非您明确禁用它,否则在您的应用程序中打开和关闭连接时,池会优化连接。

所以基于你的问题,如果你这样做:

using (SqlConnection...)
{
 // all your data calls
}

或7个单独的呼叫,每个开启和关闭(或使用“使用”)作为@Tim Coker提到,任何性能差异都将是最小的

编辑:MSDN上有一些日期文章说“尽快打开连接并尽快关闭”,这样你就可以进行一系列快速的方法调用每次打开并快速关闭连接,但无论如何,将再次共享同一个池。

答案 3 :(得分:0)

打开和关闭连接时,开销很小,所以你不必担心。