문제

커서 대신 루프를 사용하는 것이 좋은 생각입니까? 커서의 장점/단점은 무엇입니까?

도움이 되었습니까?

해결책

이들 중 일부는 DBMS에 따라 다르지만 일반적으로 다음과 같습니다.

장점 :

  • 행별로 처리 할 때 성능이 우수합니다

  • 대형 데이터 세트에서 합리적으로 잘 작동합니다

단점 :

  • 확장하지 마십시오

  • 더 많은 서버 리소스를 사용하십시오

  • tempdb의 하중이 증가합니다

  • 잘못 사용하면 누출이 발생할 수 있습니다 (예 : 해당 닫기없이 열면)

다른 팁

이 조언을 따르고 있습니다.

...] 어느 것이 더 낫다 : 커서 또는 루프가 있는가? 다시 말하지만, 그것은 실제로 당신의 상황에 달려 있습니다. 나는 거의 항상 커서를 사용하여 필요할 때 레코드를 루프합니다. 커서 형식은 나에게 조금 더 직관적이며, 결과 세트를 한 번만 루프하기 위해 구조물을 사용하기 때문에 Fast_forward 커서를 사용하는 것이 합리적입니다. 사용하는 커서의 유형은 루핑 구조의 성능에 큰 영향을 미칩니다.

- Tim Chapman SQL Server 2008의 커서 대 루프 성능 비교

링크 된 기사에는 각 접근 방식을 구현하는 방법에 대한 간단한 예가 포함되어 있습니다.

나는 당신이 그 커서/While 루프로 무엇을하고 있는지 물어볼 것입니다.

데이터를 업데이트하거나 반환하는 경우 적절한 Where 절을 사용하지 않는 이유는 무엇입니까? 나는 당신이 커서를 사용해서는 안된다고 말하는 사람들을 알고 있습니다.

커서의 일부 단점이 있습니다 여기

그런 다음 또한 있습니다 이것 (실제로 "할로윈 문제"라는 매우 흥미로운 문제)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top