2014-04-25 3 views
2

이것은 시험 문제였습니다. 지식이있는 사람이 설명에 대한 답을 줄 수 있습니까?from 절에서 조인을 최대화하고 where 절에서 조인을 최소화하십시오.

+0

별로 없습니다. 'from' 절에서 조인 만하고'where' 절에서 암시 적 조인을 수행해서는 안됩니다 (상관 하위 쿼리 제외). –

+0

where 절에 암시 적 조인을하면 'tabA.col1 = tabB.col1'을 의미하는 tabA에서'을 선택하십시오. – Somjit

+0

예. 간단한 규칙은'from' 절에 쉼표를 사용하지 마십시오. –

답변

2

대부분의 RDBMS 제품은 두 쿼리를 동일하게 최적화합니다.

Peter Gulutzan과 Trudy Pelzer가 작성한 SQL Performance Tuning에서 저자는 6 개 또는 8 개의 RDBMS 브랜드를 테스트했으며 두 가지 서로 다른 스타일의 조인간에 성능상의 차이가 없음을 발견했습니다. 따라서 성능이 인 경우 다른 구문보다 한 구문을 선호하지 않습니다. FROM 절에 JOIN 구문을 사용하는

이유는 다음과 같습니다

  • 이 조인 구문을 SQL-89 (쉼표 스타일)에서 가능하지 않은 유형, 외부 조인과 같은 자연 조인에 가입 허용하려면 USING() 절 등

  • 표준 SQL-92 구문을 준수합니다. 모든 브랜드의 RDBMS는 수년간이 구문을 지원했으며 오라클과 Microsoft/Sybase도 과거에는 외부 조인을 위해 독점적 인 구문을 고안했습니다.

  • 코드를 정리하고 사용중인 조인 유형 (내부, 외부) 및 조인 조건이 행 조건이되는 조건을 한눈에 알기 쉽도록하십시오. 대신 JOIN 구문의 쉼표 스타일의 구문을 사용하는

이유는 다음과 같습니다

  • 없음, 키보드의 "J"키가 깨진 아마도 경우를 제외하고. ;-)
+0

설명을 끝내기에 좋은 방법입니다! 감사 :) – Somjit

관련 문제