SELECT XX
, ( SELECT 코드이름 FROM 코드테이블 WHERE 코드 = A.코드 )
FROM XXX A
이거와
SELECT XX
, B.코드이름
FROM XXX A , 코드테이블 B
뭐 인덱스나 연결고리는 있다고 가정하에..
어떤게 대용량 처리시에 더 빠른속도를 보장하는지 궁금합니다^^
by 드래곤정
[2008.12.01 13:05:16]
상황에 따라 다르지만, 코드랑 하면 분포도가 좁다는 가정하에 첫번째꺼에 한표.
두개다 플랜 떠서 비교해 보면 답 나올듯.
by 마농
[2008.12.01 13:13:27]
일반적으로 1번이 유리하다고 합니다만.. 대용량이라면 다를 수도 있습니다.
직접 테스트 해보고 판단하시길...
by 호야
[2008.12.01 13:19:13]
저두 1번?? 꺼에 한표...
WHERE ....... AND ROWNUM=1
을 해도 더 빠르지 않을 까요?
by po1010
[2008.12.01 13:40:21]
답변 감사드립니다.^^;
by TeLl2
[2008.12.01 13:44:03]
그때의 상황이나 데이터의 양에 따라 다르겠지만
xxx테이블의 일부만 출력하는 상황이고
코드 테이블의 하나의 컬럼 데이터가 필요하다면
처음이 더 좋겠지만
코드 테이블의 컬럼을 여러개 가져 와야 되서 스칼러 서브쿼리를 중복해서
사용해야 하고 xxx테이블의 데이터를 다 가져와서 처리해야 되는 상황이라면
두번째 조인이 훨씬 좋습니다.
첫번째를 사용하는 경우는 보통
전체를 조인할 필요없는 상황
예를 들어 게시판 같이 10~20개의 데이터(일부의 데이터)만 뿌리되
다른 테이블에서 정보를 가져와야 하는 상황일때 사용하면 퍼포먼스 상의 잇점이 극대화 됩니다.