日期:2014-05-18  浏览次数:20380 次

性能问题
string sql = string.Empty;

方法一:
  for (int i = 0; i < 1000000; i++)
  {
  SqlConnection conn = ConnectionStringLib.ConnectionString;
  conn.Open();
  SqlCommand cmd = new SqlCommand(sql, conn);
  cmd.ExecuteNonQuery();
  conn.Close();
  conn.Dispose();
  }
方法二:
  SqlConnection conn = ConnectionStringLib.ConnectionString;
  conn.Open();
  for (int i = 0; i < 1000000; i++)
  {
  SqlCommand cmd = new SqlCommand(sql, conn);
  cmd.ExecuteNonQuery();
  }
  conn.Close();
  conn.Dispose();

测试速度相差无几,但是个人觉得有明显的不一样。第二种肯定高于第一种。
期待详细解答。


------解决方案--------------------
第一种创建和释放了1000000次连接,第二种只创建和释放了1次,个人觉得应该是第二种比较优吧。。。
------解决方案--------------------
探讨
第一种创建和释放了1000000次连接,第二种只创建和释放了1次,个人觉得应该是第二种比较优吧。。。

------解决方案--------------------
是呀,第一个还new了100W次SqlConnection 对象应该慢些吧
------解决方案--------------------
这两种方法都不可取,

for语句中尽量不要执行SQL查询,
可以预先将dataset提取出来,然后通过datatable的select实现查询,
------解决方案--------------------
探讨
这两种方法都不可取,

for语句中尽量不要执行SQL查询,
可以预先将dataset提取出来,然后通过datatable的select实现查询,

------解决方案--------------------
探讨
第一种创建和释放了1000000次连接,第二种只创建和释放了1次,个人觉得应该是第二种比较优吧。。。