5.3. 실행 계획과 ERD 읽기
답변과 함께 오는 두 그림 — 트리 모양 실행 계획과 표 관계도
데이터베이스를 물어보면 글만 오지 않습니다. 그림이 함께 옵니다. 두 가지입니다.
| 그림 | 언제 오나 | 무엇을 보여 주나 |
|---|---|---|
| 실행 계획 (트리) | 쿼리를 분석했을 때 | DB 가 그 쿼리를 어떤 순서로 처리하는가 |
| ERD (관계도) | 스키마를 물었을 때 | 표들이 어떻게 이어져 있는가 |
둘 다 끌어서 옮기고 확대할 수 있습니다. 큰 그림은 위젯 폭을 넘기므로 다루는 법을 아는 편이 낫습니다.
1. 실행 계획 트리
느린 쿼리를 물으면 이런 트리가 함께 옵니다. 가장 바깥 작업이 위, 실 제로 표를 읽는 작업이 아래쪽 끝에 놓입니다.

노드 하나에 적힌 것
▼ 3 이 붙어 있으면 아래에 3개가 접혀 있다는 뜻입니다. 노드를 누르면 펼쳐집니다.
색이 접근 방식을 말해 줍니다
노드 색은 그 표를 어떻게 읽었는지로 정해집니다. 이것 하나만 봐도 어디가 문제인지 알 수 있습니다.
| 색 | 접근 방식 | 뜻 |
|---|---|---|
| 빨강 | FULL SCAN | 표를 처음부터 끝까지 읽었다 — 가장 먼저 볼 곳 |
| 노랑 | 그 밖 | 확인해 볼 만함 |
| 초록 | INDEX RANGE | 인덱스로 범위를 좁혀 읽음 |
| 하늘 | INDEX | 인덱스만 읽고 끝냄 |
| 파랑 | UNIQUE | 한 건을 바로 찾음 — 가장 나음 |
빨강부터 봅니다. 작은 표라면 전체를 읽어도 문제가 아니지만, 큰 표에서 빨강이면 대개 그것이 원인입니다.
위 그림에서 가운데의 TABLE ACCESS FULL 이 빨간 점입니다. 나머지
INDEX RANGE SCAN 들과 한눈에 구별됩니다.
비용 막대 ■ 는 상대값입니다
■ · ■■ · ■■■ 는 이 계획 안에서 가장 비싼 노드를 기준으로 한 표시입니다.
다른 쿼리의 ■■■ 와 견줄 수 없습니다.
| 막대 | 마우스를 올리면 | 뜻 |
|---|---|---|
■■■ | Critical | 이 계획에서 가장 무거운 단계 |
■■ | High | 무겁다 |
■ | Moderate | 보통 |
| (없음) | Low | 가볍다 |
cost 숫자 자체는 DB 가 매긴 추정치입니다. 초가 아닙니다. 서로 다른 DB 의 cost 를
비교하는 것도 뜻이 없습니다. 같은 계획 안에서 어디가 더 무거운지를 보는 값입니다.