当前位置: 代码迷 >> ASP.NET >> 性能有关问题
  详细解决方案

性能有关问题

热度:3885   发布时间:2013-02-25 00:00:00.0
性能问题
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次,个人觉得应该是第二种比较优吧。。。
  相关解决方案