日期:2014-05-17  浏览次数:20550 次

关于ADO 批量更新的一个问题
最近用SQL SERVER 05 做一个东西,客服端有很多东西要更新到服务器端数据库,我用了如下的语句来进行更新
UPDATE table SET xxx=%f WHERE xxx ='%s',发现更新速度超慢,10W条数据就要N久,考虑使用ADO的一个UPDATEBATCH ,但是纳闷了,这个该怎么弄呢?因为我毕竟一条记录对应一个更新值



------解决方案--------------------
引用:
最近用SQL SERVER 05 做一个东西,客服端有很多东西要更新到服务器端数据库,我用了如下的语句来进行更新
UPDATE table SET xxx=%f WHERE xxx ='%s',发现更新速度超慢,10W条数据就要N久,考虑使用ADO的一个UPDATEBATCH ,但是纳闷了,这个该怎么弄呢?因为我毕竟一条记录对应一个更新值


           ……


按说应该不会太慢的。 lz把这个update 语句的执行计划发上来看看。 (ctrl+L 执行一下)
可以考虑建立索引。不过如果lz的更新特别频繁的话,那就是另外一个话题了。

------解决方案--------------------
这写法是用不到索引的.会造成表扫描.(最有可能的都是索引扫描了.)
10W的东西你可以分批更新.或者考虑读取后处理了再UPDATE  主键关联

比如SELECT A,B='%F' INTO # FROM TB WHERE B LIKE '%S'