2011-09-07 2 views
0

커서 "모드"의 레코드를 업데이트하는 것이 더 나은 선택입니까? '업데이트'커서를 사용할 때 최적의 성능을 얻는 방법은 무엇입니까?

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

:(나는 질문 'a'를 물었고 당신은 질문 'b'에 대해 대답했습니다. –

답변

1

WHERE CURRENT OF ...은 후보 키를 다시 선택하는 중첩 된 UPDATE 행을 다시 찾지 않아도되도록 기본 최적화를 수행합니다.

의미가 약간 다를 수도 있습니다. id이 후보 키가 아닌 경우를 상상해보십시오.

확실한 장점을 보여줄 수도 있으므로 실제 결과에 대한 결과를 보는 것이 좋습니다.

해피 코딩.

관련 문제