2011-09-07 43 views
0

哪種更新光標「模式」下的記錄更好?如何在使用'for update'光標時獲得最佳性能?

FETCH NEXT FROM my_cur INTO @Param_Id  
     WHILE @@FETCH_STATUS = 0 
      BEGIN 
         ... 
         UPDATE MyTable 
         SET name= 'aaa' 
         WHERE MyTable.id = @Param_Id // update the regular TABLE ... 
         ... 
      END 

WHERE CURRENT OF my_cur // update the current cursor row 

的區別是什麼?

(遊標在該特定情況下需要)。

+1

最佳選擇!**避免乾脆遊標** –

+1

:)但是,如果我需要什麼? –

+1

:(我問的問題「一」,你已經回答了我的問題「B」 –

回答

1

我會想象WHERE CURRENT OF ...會對它進行底層優化,而不需要再次爲候選鍵上嵌套的UPDATE重新選擇找到行。

語義也略有不同 - 想象一下,如果id不是候選鍵。

這將是很好看的一些真實測試的一些結果,因爲它可能會表現出明顯的優勢,這種或那種方式。

快樂編碼。

相關問題