有这么多一个表,表名为table1,里面有字段a1,a2,a3,a4  还有一些其他字段。总数据量有50多万条我需要一次性更新20W或20W以上的数据。
@a3 varchar(50),
@a1  varchar(50),
@a4 varchar(8000),
@b1 varchar(50),
@a2 datetime
as
update table1  set  a1=@b1,a2=@a2 where a3=@a3 and a1=@a1 and a4=@a4
后来我在网上搜索了一下,有人说可能是因为更新的时候表有写入操作,于是就改了一下:@a3 varchar(50),
@a1  varchar(50),
@a4 varchar(8000),
@b1 varchar(50),
@a2 datetime
as
update table1 WITH (ROWLOCK)  set  a1=@b1,a2=@a2 where a3=@a3 and a1=@a1 and a4=@a4但是还是依旧超时,实际上我可以100%保证更新的时候没有写入操作。就这么一句语句,执行了很久都没反应。我将CommandTimeout设为3600秒,结果等了一个小时之后还是超时了。请问这到底是硬件差了造成的,还是因为SQL语句没写好造成的?如何解决。