문제

이 있는 엄지손가락의 규칙에 대한 개발자가 사용하는 경우 가입신의 하위 또는 동일합니다.

도움이 되었습니까?

해결책

RDBMS에 따라 다릅니다. 두 쿼리에 대한 실행 계획을 비교해야합니다.

Oracle 10 및 11에 대한 경험에서 실행 계획은 항상 동일합니다.

다른 팁

첫 번째 법칙은"상태를 쿼리를 정확하게".두번째 법칙은"상태를 쿼리를 단순히고 분명히"(여기에서 당신은 일반적으로 선택).세 번째가"상태를 쿼리도록 프로세스를 효율적으로".

경 dbms 좋은 쿼리 프로세서에서 해당 쿼리 디자인해야한 결과에서는 쿼리 계획과 동일(또는 적어도 동일하게 효율적입니다.)

내 최고의 좌절에 따라 사용 MySQL 처음 방법 의식이 있었을 예측하기 최적화 프로그램입니다.후에 오랜 경험을 Oracle,SQL Server,Informix,및 다른 dbms 제품,나는 아주 드물게 예상을 우려 자신으로 이러한 문제입니다.그것의 더 나은 이제 새로운 버전의 MySQL,그러나 그것은 아직도 내가 끝까지 지불 할 필요에 관심을 더 자주 만들 수 있습니다.

성능 측면에서는 대부분의 최신 DB 엔진에 차이가 없습니다.

하위 Queries의 문제는 키없이 하위 소재 세트를 갖는 것이 더 비싸다는 것입니다.

가능하면 항상 조인 쿼리와 조항을 사용하여 조인을 사용하여 어디에 있지는 않지만 (현대 엔진이 최적화되어 있기 때문에 동일해야합니다).

이론적으로 모든 하위 쿼리는 조인 쿼리로 변경할 수 있습니다.

많은 것들과 마찬가지로, 그것은 달라집니다. - 하위 쿼리가 얼마나 복잡한가 - 쿼리에서 하위 쿼리가 얼마나 자주 실행됩니까?

가능할 때마다 하위 쿼리를 피하려고 노력합니다. 특히 큰 결과 세트를 기대할 때 하위 쿼리를 사용하지 않습니다. 결과 세트의 각 항목에 대해 하위 쿼리가 실행되는 경우.

조심하세요, 알렉스

"조기 최적화가 모든 악의 근본이라는 것을 알고 있다면 우리가해야 할 경우와 마찬가지로 지금은 성능 영향을 무시합시다.

더 명확하고 유지하기 쉬운 것을 선택하십시오.

SQL Server에서 상관 관계 서브 쿼리는 일반적으로 결합보다 더 나빠지거나 종종 성능이 더 나은 파생 테이블에 가입합니다. 나는 여러 번 수행해야 할 일에 대한 하위 쿼리를 거의 쓰지 않습니다. 상관 관계 하위 쿼리는 종종 기본적으로 쿼리를 커서로 바꾸고 한 번에 한 줄을 실행하기 때문입니다. 데이터베이스에서는 일반적으로 세트 기반 방식으로 일을하는 것이 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top