多个update执行一次和分开执行的速度问题!
Sql Server 2000 + VB.net
用下面2种方法是先更新数据,竟然发现方法1比方法2慢很多,似乎不太合理,应该方法1较快才对啊!
new_dateArray里的内容很多,大概几千条。
方法1:
strSql = Nothing
For w_K = 0 To new_dateArray.Count - 1
strSql = strSql & "UPDATE Table_Test SET "
strSql = strSql & "VALUE = 1 "
strSql = strSql & " WHERE ID=0 "
strSql = strSql & " AND Time= ' " & CDate(new_dateArray.Item(w_K)) & " ' "
Next
sqlCmd = New SqlCommand(strSql, sqlConn)
sqlCmd.ExecuteNonQuery()
sqlCmd = Nothing
strSql = Nothing
-------------------------------------
方法2:
strSql = Nothing
For w_K = 0 To new_dateArray.Count - 1
strSql = "UPDATE Table_Test SET "
strSql = strSql & "VALUE = 1 "
strSql = strSql & " WHERE ID=0 "
strSql = strSql & " AND Time= ' " & CDate(new_dateArray.Item(w_K)) & " ' "
sqlCmd = New SqlCommand(strSql, sqlConn)
sqlCmd.ExecuteNonQuery()
sqlCmd = Nothing
strSql = Nothing
Next
------解决方案--------------------当然每2个快,每条执行,sql语名加的太长了,要时间的
------解决方案--------------------在一起执行就可以
------解决方案--------------------理论上第一个快
实际上在我这里测试也是第一个快
------解决方案--------------------循环次数少,1快,因为传送数据差不多,但一次编译一次执行 对 多次编译多次执行
循环次数增加,1网络传送比2慢,再增加网络传送起关键作用,当然1慢
改成 Time in 把后面的连成 a,b,c,d,e 的形式快一点,做起调存储过程更快
------解决方案--------------------第一个快