INNER JOIN이 EXISTS보다 더 나은 성능을 제공 할 수 있습니까?
나는 일련의 절차에서 성능 향상을 조사하고 있으며 최근 동료가 EXISTS 대신 INNER JOIN을 사용할 때 상당한 성능 향상을 달성했다고 언급했습니다.
이것이 왜 그런지에 대한 조사의 일환으로 여기에서 질문을 할 것이라고 생각했습니다.
그래서:
- INNER JOIN이 EXISTS보다 더 나은 성능을 제공 할 수 있습니까?
- 어떤 상황이 발생합니까?
- 테스트 케이스를 증거로 설정하려면 어떻게해야합니까?
- 추가 문서에 대한 유용한 링크가 있습니까?
그리고 실제로 사람들이이 질문에 대해 감당할 수있는 다른 경험을 할 수 있습니다.
다른 가능한 성능 향상에 대한 제안없이이 질문에 대한 답변이 구체적으로 해결 될 수 있다면 감사하겠습니다. 우리는 이미 상당한 성공을 거두었고 저는이 항목에 관심이있었습니다.
어떤 도움이라도 대단히 감사하겠습니다.
일반적으로, INNER JOIN그리고 EXISTS다른 것들입니다.
전자는 두 테이블 모두에서 중복과 열을 반환하고 후자는 하나의 레코드를 반환하며 술어는 하나의 테이블에서만 레코드를 반환합니다.
UNIQUE열에서 내부 조인을 수행하면 동일한 성능을 나타냅니다.
DISTINCT(중복을 제거하기 위해) 적용된 레코드 세트에서 내부 조인을 수행하면 EXISTS일반적으로 더 빠릅니다.
IN및 EXISTS절 (동등 조인 상관 관계 포함) SEMI JOIN은 일반적으로 DISTINCT테이블 중 하나에 대한 것보다 더 효율적인 여러 알고리즘 중 하나를 사용합니다.
내 블로그에서이 기사를 참조하십시오.
그럴 수도 있고 아닐 수도 있고.
- 동일한 계획이 생성 될 가능성이 가장 높습니다.
- INNER JOIN은 동일한 출력을 얻기 위해 DISTINCT가 필요할 수 있습니다.
- EXISTS는 NULL을 처리합니다.
참조 URL : https://stackoverflow.com/questions/2177346/can-an-inner-join-offer-better-performance-than-exists
'Program Club' 카테고리의 다른 글
| C #으로 플로팅 (0) | 2020.12.31 |
|---|---|
| Commodore 64에서 화면 테두리에 그리기 (0) | 2020.12.31 |
| PostgreSQL 증분 백업을위한 최상의 방법 (0) | 2020.12.31 |
| CUDA를 C #으로 코딩 하시겠습니까? (0) | 2020.12.31 |
| 일부 명령은 수퍼 유저로 실행하고 일부 명령은 수퍼 유저로 실행하지 않고 실행하는 쉘 스크립트를 작성하는 방법은 무엇입니까? (0) | 2020.12.31 |