inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

데이터 분석 SQL Fundamentals

조인 실습 - 01

Join 순서 질문 드립니다.

212

현지원

작성한 질문수 14

0

안녕하세요,

 

JOIN 수업을 들으며 JOIN 순서와 수행시간에 궁금한 점이 생겨서 질문드립니다.

 

1번 emp -> dept 테이블로 조인한 경우

-- 1
SELECT B.DNAME, A.EMPNO, A.ENAME, A.JOB, C.FROMDATE, C.TODATE, C.SAL
FROM HR.EMP A
	JOIN HR.DEPT B ON A.DEPTNO = B.DEPTNO 
	JOIN HR.EMP_SALARY_HIST C ON A.EMPNO = C.EMPNO
WHERE B.DNAME IN ('SALES', 'RESEARCH')

 

2번 dept -> emp 테이블로 조인한 경우

SELECT A.DNAME, B.EMPNO, B.ENAME, B.JOB, C.FROMDATE, C.TODATE, C.SAL
FROM HR.DEPT A
	JOIN HR.EMP B ON A.DEPTNO = B.DEPTNO 
	JOIN HR.EMP_SALARY_HIST C ON B.EMPNO = C.EMPNO
WHERE A.DNAME IN ('SALES', 'RESEARCH')

 

데이터가 작은 테이블에서 큰 테이블(1 -> m)로 조인하는 것보다 큰 테이블에서 작은 테이블로(m -> 1) 조인하는게 속도가 더 빠를 것 같은데, 어떤 방식으로 조인하는게 더 효율적인지 궁금합니다.

 

데이터가 엄청 많아지는 경우, 1번과 2번 두 쿼리의 실행 속도에서 큰 차이가 날까요? 내부적으로 더 효율적인 방식으로 실행을 할 수 도 있는건가요?

 

sql postgresql dbms/rdbms

답변 1

1

권 철민

안녕하십니까,

일반적으로 테이블이 작은 집합에서 테이블이 큰 집합으로 조인하면 더 성능이 빠를것 같지만 조인의 성능을 좌우하는 요소들이 많아서 이렇게 단정 지을 수는 없습니다.

인덱스의 존재 여부, 조인의 유형(NL이나 Hash냐), where 조건, 부분범위 처리 여부등 여러가지 성능을 좌우하는 여러 요소들이 고려되어야 합니다.

위 사항에 대한 내용을 잘 모르겠다라고 생각하시면 말씀하신대로 테이블이 작은 집합에서 큰 집합으로 조인하면 됩니다. 다만 이 경우 크게 성능이 향상 되지 않는다면 위에서 말씀 드린 다양한 조건때문에 그런 것으로 생각해 주시면 될 것 같습니다.

 

감사합니다

'레벨 유지'의 의미에 대한 질문

0

54

2

date_part

0

56

2

lag/lead offset 관련 질문

0

58

2

join 관련 질문 (inner join, left join)

1

101

2

배치에서 full outer join을 쓴다고 하셨는데 예시를 알 수 있을까요?

0

90

2

Madrid에 살고 있는 고객이 주문한 주문 정보를 구할것. 실습 질문드립니다

0

54

2

rollup시 null값 매출 라벨링

0

56

2

10. 조인 실습 - 02 관련 질문

0

61

1

조인실습03 - join의 pk-fk join

0

109

2

조인실습03 - join의 pk-fk join

0

69

2

(공유)맥, 스키마 import

0

82

2

sql 입문자인데, 이 강의와 sql 코딩테스트와 연관이 있을까요?

0

138

2

1인지 M인지는 결국엔 테이블을 직접 확인을 해야 하는걸까요?

0

132

2

안녕하세요. 튜닝핵심가이드강의 관련해서 여쭤보고 싶어서 남깁니다.

0

92

1

섹션5 Group by 실습-01 강의 예제 질문

0

119

2

섹션2 조인 기반 메커니즘에서 조인 실습 - 04 강의 예제 질문

0

125

2

섹션2 조인 실습 01 강의 질문

0

134

2

lead lag 이해 강의에서 윈도우 절은 사용되지 않습니다.

0

128

1

Dbeaver오류

0

631

2

직원 별 가장 높은 매출

0

119

1

강의순서대로 실습코드순알려주세요.

0

134

1

m:n inner join일 경우 cross조인과 동일하게 동작되는건가요?

0

132

1

rollup

0

91

2

Dbeaver에 접속해도 postgressql이 네비게이터에 안보입니다.

0

356

2