[SQL] EXISTS보다 내부가 제공하는 더 나은 성능을 가입 할 수 있습니다
SQLEXISTS보다 내부가 제공하는 더 나은 성능을 가입 할 수 있습니다
나는 절차의 일련의 성능 향상을 조사하고 있었고, 최근 동료는 그가 내부를 이용할 때 상당한 성능 향상을 달성 EXISTS 대신에 가입했다고 언급했다.
이 될 수있는 이유에 대한 조사의 일환으로 나는 여기에 질문을 것이라고 생각했다.
그래서:
그리고 정말 다른 경험을 사람들이 질문에 곰을 가져올 수있다.
어떤 대답이 다른 가능한 성능 향상의 어떤 제안하지 않고 특별히이 문제를 해결할 수 있다면 감사하겠습니다. 우리는 이미 성공의 꽤 정도를 했어, 난 그냥이 하나 개의 항목에 관심이되었다.
어떤 도움이 많이 주시면 감사하겠습니다.
해결법
-
==============================
1.일반적으로 다른 일을하는 내부 조인, 말하기 존재한다.
일반적으로 다른 일을하는 내부 조인, 말하기 존재한다.
두 테이블에서 이전 반환 중복과 열, 후자의 반환 하나 개의 레코드와, 인 술어, 하나 개의 테이블에서 반환 기록합니다.
당신은 내부가 UNIQUE 컬럼에 가입 할 경우, 그들은 동일한 성능을 나타낸다.
당신이 가진 레코드에 가입 내부를 할 경우 적용이 (중복을 제거하기 위해) 존재 DISTINCT는 일반적으로 빠르다.
일반적으로 여러 SEMI 중 하나를 사용 IN과 (AN 동등 조인의 상관 관계) 조항 존재는 일반적으로 더 효율적인 테이블 중 하나에 DISTINCT보다 알고리즘 가입하세요.
내 블로그에이 문서를 참조하십시오 :
-
==============================
2.그럴 수도 있고 아닐 수도 있고.
그럴 수도 있고 아닐 수도 있고.
from https://stackoverflow.com/questions/2177346/can-an-inner-join-offer-better-performance-than-exists by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 포스트 그레스에서 여러 행으로 분할 열 (0) | 2020.05.23 |
---|---|
[SQL] SQL 관리 스튜디오에서 CommandTimeout이 변경 (0) | 2020.05.23 |
[SQL] MySQL은 : 0에 NULL를 타입 캐스팅 (0) | 2020.05.23 |
[SQL] SQL 서버 그룹에 의해 누적 합계 (0) | 2020.05.23 |
[SQL] 어떻게 내 SQL 데이터베이스에 많은 관계로 하나를 저장? (MySQL의) (0) | 2020.05.23 |