일부 SQL Server 개발자들 사이에서는 매우 NOT IN
느리다는 믿음이 널리 퍼져 있으며 동일한 결과를 반환하지만 "사악한"키워드를 사용하지 않도록 쿼리를 다시 작성해야합니다. ( 예 ).
그것에 진실이 있습니까?
예를 들어, 사용하여 쿼리를 일으키는 SQL Server의 일부 알려진 버그 (버전?)가되어 NOT IN
사용하는 동등한 쿼리보다 더 나쁜 실행 계획을 가지고
LEFT JOIN
결합NULL
수표(SELECT COUNT(*) ...) = 0
에서WHERE
절?
@Heinzi 당신이 연결하는 그 기사는 불에 죽어야하는데, 말도 안되는 소리로 가득합니다. 마찬가지로 : "IN를 교체하려면, 우리는 가입 내부를 사용하여 효과적으로 같은 일이다.." 문제는 그것들이 똑같지 않다는 것입니다. SQL-Server 동작에 대한 모든 것을 분석하기 위해 기본 SQL을 모르는 사람, 즉 조인과 세미 조인의 차이점을 믿지 않습니다.
—
ypercubeᵀᴹ
IN
/NOT IN
가 항상 중첩 루프로 구현 될 것이라고 생각하는 것 같습니다 . 그리고 나는 무엇stops SQL Server from creating a ‘plan’
을 의미 하는지 전혀 모른다 .