Ere*_*ren 3 sql-server sqlconnection fill sqlperformance sqldataadapter
例如,我需要使用SQLDataAdapter的Fill()方法填充大量DataTable:
DataAdapter1.Fill(DataTable1);
DataAdapter2.Fill(DataTable2);
DataAdapter3.Fill(DataTable3);
DataAdapter4.Fill(DataTable4);
DataAdapter5.Fill(DataTable5);
....
....
Run Code Online (Sandbox Code Playgroud)
即使所有的dataadapter对象都使用相同的SQLConnection,每个Fill方法都会打开和关闭连接,除非在方法调用之前连接状态已经打开.
我想知道的是,如何不必要地打开和关闭SQLConnections会影响应用程序的性能.需要扩展多少才能看到此问题的不良影响(100,000个并发用户?).在中型网站(每天50000个用户)中,是否值得烦恼并搜索所有Fill()调用,将它们保存在代码中并在任何Fill()调用之前打开连接并在之后关闭?
ADO.NET具有连接池,例如,当您关闭连接时,它并不是真正完全关闭,但如果您要求使用完全相同的连接字符串的新连接,则"回收".
尽管如此 - 如果你已经提前知道你必须逐个调用这五种填充方法,我肯定会推荐
以这种方式做到这是最好的做法,它不会伤害你 - 所以就这样做吧!:-)
渣
PS:ADO.NET中的连接池当然只有在你没有关闭的情况下才有效!:-)默认情况下它是 - 你必须明确禁用它.