020. 조인이 느리다면 - llighter/database GitHub Wiki

SQL 레벨업

1. 상황에 따른 최적의 조인 알고리즘

3가지 알고리즘의 장점과 단점

이름 장점 단점
Nested Loops ?? ??
Hash ?? ??
Sort Merge ?? ??

표와 규모별 적합 알고리즘 추가 설명 작성

2. 실행 계획 제어

- DBMS별 실행 계획 제어

  • Oracle
    • 힌트 구로 결합 알고리즘을 제어할 수 있다.(USE_NL, USE_HASH, USE_MERGE). 구동 테이블도 지정할 수 있다.(LEADING)

- 실행 계획은 사용자가 제어할 때의 리스크

  • 데이터 양과 카디널리티가 데이터베이스를 운용하면서 변화한다.

3. 흔들리는실행 계획

실행 계획 변동에 따른 돌발적인 슬로다운 그래프 추가

  • 조인은 실행 계획 변동이 일어나기 가장 쉬운 연산이다.
  • 따라서 SQL 성능의 변동 위험을 줄이려면 되도록 결합을 피해야 한다.
  • ex. 비정규화, 상관 서브쿼리