update效率的问题?
如: 
 表:Table1 
 字段:value1(varchar),value2(varchar),value3(varchar) 
 1):update   table1   set   value1   =    'AAA '   where   value2   =    'BBB '   or   value3   =    'CCC '; 
 2):update   table1   set   value1   =    'AAA '   where   value2   =    'BBB '; 
          update   table1   set   value1   =    'AAA '   where   value3   =    'CCC '; 
 Table1   数据量:50万 
 1)执行很慢,但将1)拆分成两条数据(如:2))则执行很快,如果不做拆分,有什么方法提高效率吗?
------解决方案--------------------感觉是索引问题..   
   想问一上问题,OR会不会做遍历的啊?
------解决方案--------------------尽量不要用“or”吧,尤其是做update的时候。
------解决方案--------------------or一般都会做全表扫描,索引不起作用,所以尽量避免or 
------解决方案--------------------尽量避免用or
------解决方案--------------------mengmou()mengmou() 说的是正确的   
 应该是楼主value2跟value3只有一个字段上有索引或无索引   
 LS的几位对OR的解释是不正确的,OR是可以应用索引的,只是OR的连接条件有一个不能应用索引便导致整个or连接条件不能应用索引(许多“权威”的书曾经给过大家这个谬误的认知)而已   
 具体执行情况可以看执行计划就可以的到结果   
------解决方案--------------------谁说OR会引起全表扫描?看看SQL Server Books Online去,这个现象也许与内存大小有关,同时使用两个条件将导致更大的系统缓存,如果内存连续空间不足,将使用虚拟内存,导致IO时间加长;拆分为两次执行,可能恰好将每次的内存需求控制在可用物理内存之内。 
 楼主试试看仍旧用OR条件,但增加其他条件使更新的数据量只有1)的一半,观察一下效果。
------解决方案--------------------我也碰到樓主的問題,,,經常使用如下語句   
 update tab_a set col1=1 where type=1 
 update tab_a set col1=2 where type=2 
 update tab_a set col1=1 where type=3   
 速度是快了,感覺挺S的......