我有一张包含500000条记录的表格aprox。我需要更新字段,我正在使用以下说明:
update myTable set myField = ltrim(rtrim(myField))
但该指令需要一个小时的时间。我尝试过使用where子句:
update myTable set myField = ltrim(rtrim(myField)) where myPrimaryKey >= 0 and myPrimaryKey <= 50000
但执行时间也很慢。
有什么想法吗?如何提高更新性能? 问候。
答案 0 :(得分:0)
尝试仅为此更新临时创建non-clustered index
而不是myField
,并尝试使用此更新脚本。
答案 1 :(得分:0)
确定。我使用CURSOR减少了时间。
DECLARE cursor_prueba CURSOR FOR
select A, B, C from MyTable order by A
' A is PrimaryKey
OPEN cursor_prueba
FETCH cursor_prueba INTO @varA, @varB, @varC
WHILE @@FETCH_STATUS = 0
BEGIN
update MyTable set B = ltrim(rtrim(B)), C = ltrim(rtrim(C)) where A = @varA
FETCH cursor_prueba INTO @varA, @varB, @varC
END
CLOSE cursor_prueba
DEALLOCATE cursor_prueba
我希望这会有所帮助 关心每个人。