020. 조인이 느리다면 - llighter/database GitHub Wiki
1. 상황에 따른 최적의 조인 알고리즘
3가지 알고리즘의 장점과 단점
이름 | 장점 | 단점 |
---|---|---|
Nested Loops | ?? | ?? |
Hash | ?? | ?? |
Sort Merge | ?? | ?? |
표와 규모별 적합 알고리즘 추가 설명 작성
2. 실행 계획 제어
- DBMS별 실행 계획 제어
- Oracle
- 힌트 구로 결합 알고리즘을 제어할 수 있다.(
USE_NL
,USE_HASH
,USE_MERGE
). 구동 테이블도 지정할 수 있다.(LEADING
)
- 힌트 구로 결합 알고리즘을 제어할 수 있다.(
- 실행 계획은 사용자가 제어할 때의 리스크
- 데이터 양과 카디널리티가 데이터베이스를 운용하면서 변화한다.
3. 흔들리는실행 계획
실행 계획 변동에 따른 돌발적인 슬로다운 그래프 추가
- 조인은 실행 계획 변동이 일어나기 가장 쉬운 연산이다.
- 따라서 SQL 성능의 변동 위험을 줄이려면 되도록 결합을 피해야 한다.
- ex. 비정규화, 상관 서브쿼리