복붙노트

[SQL] EXISTS보다 내부가 제공하는 더 나은 성능을 가입 할 수 있습니다

SQL

EXISTS보다 내부가 제공하는 더 나은 성능을 가입 할 수 있습니다

나는 절차의 일련의 성능 향상을 조사하고 있었고, 최근 동료는 그가 내부를 이용할 때 상당한 성능 향상을 달성 EXISTS 대신에 가입했다고 언급했다.

이 될 수있는 이유에 대한 조사의 일환으로 나는 여기에 질문을 것이라고 생각했다.

그래서:

그리고 정말 다른 경험을 사람들이 질문에 곰을 가져올 수있다.

어떤 대답이 다른 가능한 성능 향상의 어떤 제안하지 않고 특별히이 문제를 해결할 수 있다면 감사하겠습니다. 우리는 이미 성공의 꽤 정도를 했어, 난 그냥이 하나 개의 항목에 관심이되었다.

어떤 도움이 많이 주시면 감사하겠습니다.

해결법

  1. ==============================

    1.일반적으로 다른 일을하는 내부 조인, 말하기 존재한다.

    일반적으로 다른 일을하는 내부 조인, 말하기 존재한다.

    두 테이블에서 이전 반환 중복과 열, 후자의 반환 하나 개의 레코드와, 인 술어, 하나 개의 테이블에서 반환 기록합니다.

    당신은 내부가 UNIQUE 컬럼에 가입 할 경우, 그들은 동일한 성능을 나타낸다.

    당신이 가진 레코드에 가입 내부를 할 경우 적용이 (중복을 제거하기 위해) 존재 DISTINCT는 일반적으로 빠르다.

    일반적으로 여러 SEMI 중 하나를 사용 IN과 (AN 동등 조인의 상관 관계) 조항 존재는 일반적으로 더 효율적인 테이블 중 하나에 DISTINCT보다 알고리즘 가입하세요.

    내 블로그에이 문서를 참조하십시오 :

  2. ==============================

    2.그럴 수도 있고 아닐 수도 있고.

    그럴 수도 있고 아닐 수도 있고.

  3. from https://stackoverflow.com/questions/2177346/can-an-inner-join-offer-better-performance-than-exists by cc-by-sa and MIT license