Explain Plan
Explain Plan (Single-Stage)
쿼리에 대한 Pinot의 실행 계획을 검사하는 방법이에요.
출처: 문서
본문
쿼리를 조정하기 전이나 조정하는 동안 Pinot가 어떻게 쿼리를 실행할지 이해하고 싶을 때 EXPLAIN PLAN FOR를 사용해요.
무엇을 알려주나? (What it tells you)
Explain plan 출력으로 다음을 확인할 수 있어요.
- Pinot가 실행할 연산자
- 인덱스가 사용되는지 여부
- 필터, 프로젝션, 집계가 어디서 일어나는지
- 쿼리가 single-stage 또는 multi-stage 실행에서 어떻게 형성되는지
EXPLAIN PLAN FOR
SELECT city, COUNT(*)
FROM stores
GROUP BY city;
Single-stage와 multi-stage
Single-stage explain plan은 단순한 쿼리 뒤의 연산자 흐름을 이해하는 데 가장 좋아요.
Multi-stage explain plan은 조인, 서브쿼리, 분산 실행 형태를 검사해야 할 때 더 좋아요.
사용 방법 (How to use it)
쿼리가 다음과 같은 경우 explain plan부터 시작해요.
- 예상보다 느린 경우
- 기대했던 인덱스를 사용하지 않는 경우
- 이해하기 어려운 형태를 반환하는 경우
그다음 수정이 필요하다면 계획을 쿼리 옵션 또는 인덱스 지침과 짝지어 사용해요.
이 페이지가 다룬 내용
이 페이지는 explain plan이 무엇을 보여주는지, 언제 사용하는지, single-stage와 multi-stage 엔진이 어떻게 다른지 다뤘어요.
다음 단계
더 깊은 실행 형태 논의가 필요하다면 SQL syntax를 읽고, 문제가 문법이 아니라 런타임 제어라면 쿼리 옵션이나 할당량을 다시 살펴보세요.