이론적으로 왜 내부 조인 작업이 현저히 빠르며 두 쿼리가 동일한 결과 집합을 반환한다는 사실을 고려할 때 외부 조인을 남겨 두었을 것입니다. 설명하는 데 오랜 시간이 걸리는 쿼리가 있지만 이것은 단일 조인 변경 (왼쪽 외부 조인 - 6 초, 내부 조인 - 0 초 (나머지 쿼리는 동일))을 보았습니다. 결과 집합 : 같은SQL Server 속도 : 왼쪽 외부 조인 대 내부 조인
답변
가 실제로 외부 조인 왼쪽 및 내부 데이터에 의존하는 것보다 결과가있을 것이다 가입하고 다시 데이터에 따라 외부 왼쪽 같은 results..most을 반환하지 않을 가입 ..
나는 이것이 대답이고 논평이 아닌 이유를 잘 모릅니다. 오른쪽 테이블에 일치하는 행이없는 경우 왼쪽 결합이 더 많은 결과를 반환 할 수도 있지만 OP는 자신의 경우 두 행이 동일한 행을 생성한다는 것을 명확하게 나타냅니다. 잘못된 형식의 쿼리 (예 : 오른쪽/바깥 쪽의 조인/필터 기준)가 원인 일 수 있지만 왼쪽 표에는 오른쪽 표와 일치하지 않는 행이 없을 수 있습니다. –
왼쪽 조인을 내부 조인으로 변경하면 결과가 달라지지 않을까 걱정됩니다. 나는 where 절에있는 테이블의 왼쪽에 효과적으로 내부 조인으로 바꾸는 조건을 가지고 있다고 의심 할 것이다. 같은
뭔가 :
select *
from table1 t1
left join table2 t2 on t1.myid = t2.myid
where t2.somefield = 'something'
그래서 내가 내 쿼리로 시작하는 잘못된 것을 걱정된다, 그럼 내가 걱정 것이다 첫번째
select *
from table1 t1
left join table2 t2
on t1.myid = t2.myid and t2.somefield = 'something'
같은 것이 아니다 공연. 내부 조인은
NOT이고 왼쪽 조인의 성능이 향상되어 서로 다른 두 가지를 의미하며 모든 레코드에 대해 항상 일치하는 테이블이 없으면 다른 결과를 반환해야합니다. 이 경우 다른 쪽이 성능을 향상시키지 못하기 때문에 내부 조인으로 변경됩니다.
왼쪽 조인이 더 오래 걸리는 이유에 대해 가장 잘 추측하면 where 절로 필터링 된 더 많은 행에 합류한다는 것입니다. 하지만 그건 그냥 추측입니다. 당신이 실행 계획을 봐야한다는 것을 알기 위해서.
일반적으로 나는 동의하지만 공정하기 때문에 오늘 데이터가 'INNER JOIN'에 쉽게 맞을지라도 'LEFT OUTER JOIN'을 사용하여 쿼리를 작성했습니다. 결과는 항상 결과가 항상 유지 될 필요는 없습니다. 나중에 도입 된 일치하지 않는 행 (또는 과거에 있었던 행)이있을 수 있습니다. 그래서 내외부 조인이 오늘 같은 결과를 가져 오는 경우 경보 음을 너무 크게 들리는 경향이 없습니다. 실행 계획이 다르다는 사실은 조인 키워드보다 두 쿼리 사이에 차이가 더 많음을 알게합니다. –
- 1. LINQ 내부 조인 대 왼쪽 조인
- 2. 오른쪽 조인 대 왼쪽 조인
- 3. 왼쪽 외부 조인 문제
- 4. 실제 왼쪽 외부 조인
- 5. SQL Server - 업데이트시 내부 조인
- 6. 왼쪽 외부 조인 - SQL2005
- 7. 왼쪽 외부 조인 IEnumerable
- 8. 왼쪽 외부 조인 액세스?
- 9. 왼쪽 외부 조인 Linq to Entities/SQL
- 10. symfony2의 Sql 쿼리 예외 - 왼쪽 외부 조인
- 11. Linq 왼쪽 외부 조인 쿼리
- 12. 왼쪽 조인 합계 SQL
- 13. SQL : 세 개의 테이블 조인 - 내부/외부 조인 결합?
- 14. SQL 쿼리 : 복잡한 내부 조인 및 외부 조인
- 15. SQL 쿼리 내부 조인
- 16. SQL Server 날짜 범위 및 외부 조인
- 17. 조건부 내부 또는 외부 조인 SQL 서버
- 18. "내부 조인"및 "외부 조인"은 어떻게 이름을 얻었습니까?
- 19. SQL Server : 최대 날짜 및 내부 조인
- 20. 내부 조인 SQL 문
- 21. SQL 단순 내부 조인
- 22. SQL 내부 조인 문제
- 23. SQL 내부 조인 부문
- 24. MySQL 왼쪽 외부 조인 속도 향상/null 쿼리 확인
- 25. SQL 외부 조인 함수
- 26. 조인 대 노조의 조인
- 27. SQL - 외부 조인 두 개
- 28. mysql 쿼리 조인/내부 조인
- 29. SQL 왼쪽 조인 (조건 사이)
- 30. 왼쪽 조인 및> = linq 조인 조건
실행 계획을 비교 했습니까? 모호한 질문을하는 경우 매우 구체적인 결과가 기대되지 않기를 바랍니다. –
예상되는 결과를 얻으려면 먼저 통계 (및 색인)가 최신 상태인지 확인해야합니다. –
@Aaron Bertrand 예, 죄송하지만 자세한 내용을 설명 할 수 없습니다. 실행 계획은 다르게 보이지만 잘 읽지는 않습니다. 어쨌든 나는 아마 이것에 대한 일반적인 이유가있을 것이라고 생각했다. ... – ren