> 데이터 베이스 > MySQL 튜토리얼 > T-SQL의 ANSI JOIN과 비ANSI JOIN: 성능 차이는 무엇입니까?

T-SQL의 ANSI JOIN과 비ANSI JOIN: 성능 차이는 무엇입니까?

Susan Sarandon
풀어 주다: 2025-01-21 03:41:09
원래의
414명이 탐색했습니다.

ANSI JOIN vs. Non-ANSI JOIN in T-SQL: What are the Performance Differences?

T-SQL에서 ANSI JOIN과 비ANSI JOIN의 성능 차이

T-SQL 저장 프로시저에서는 ANSI가 아닌 JOIN 구문이 항상 일반적이었습니다.

<code class="language-sql">SELECT A.A, B.B, C.C
FROM aaa AS A, bbb AS B, ccc AS C
WHERE
    A.B = B.ID
AND B.C = C.ID
AND C.ID = @param</code>
로그인 후 복사

이를 ANSI-92 JOIN 구문으로 바꾸면 성능이 향상될 수 있다는 추측이 있습니다.

<code class="language-sql">SELECT A.A, B.B, C.C
FROM aaa AS A
JOIN bbb AS B
   ON A.B = B.ID
JOIN ccc AS C
   ON B.C = C.ID
   AND C.ID = @param</code>
로그인 후 복사

동일한가요?

이 특정 예에서는 두 쿼리의 실행이 동일합니다. 그러나 ANSI-92 구문에는 다음과 같은 몇 가지 장점이 있습니다.

  • 명확성: JOIN 절은 논리를 관계와 필터로 분리하여 가독성을 높입니다.
  • 모호함 방지: 경우에 따라 ANSI가 아닌 외부 조인으로 인해 모호한 결과나 교착 상태가 발생할 수 있습니다. ANSI-92 구문은 이러한 상황을 제거합니다.
  • 표준 준수: ANSI-92는 현재 업계 표준이며 대부분의 개발자와 쿼리 도구에서 채택되었습니다.
  • 예기치 않은 데카르트 곱 방지: JOIN 절은 예상치 못한 데카르트 곱을 방지하는 데 도움이 됩니다.

ANSI 구문이 아닌 인수

ANSI가 아닌 구문이 SQL을 필터링이 뒤따르는 데카르트 곱으로 개념화하는 데 도움이 된다고 주장하는 사람들도 있습니다. 이 기술은 이해에 도움이 되지만 일반적으로 더 명확하고 표준을 준수하는 기본 ANSI-92 구문을 사용하는 것이 좋습니다. 이 규칙의 유일한 예외는 자연 조인을 사용하는 경우이며, 이는 고유한 위험으로 인해 완전히 피해야 합니다.

위 내용은 T-SQL의 ANSI JOIN과 비ANSI JOIN: 성능 차이는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿