DB/Postgresql

SQL - Explain

개발 일기92 2024. 4. 9. 17:45

explain이란?

쿼리문에 대해서 PostgreSQL 실행계획기가 만든 실행 계획을 보여준다.

어떤 테이블이 테이블 전체 순차 검색을 하는지, 인덱스 검색을 하는지를 보여준다. 또한 여러 테이블이 조인이 될 경우 그 각 테이블들의 조인 알고리즘은 어떤 것을 사용할 것인지를 보여준다.

 

analyze (Explain 옵션)

ANALYZE 옵션을 사용하면, 실제 해당 쿼리를 실행하고, 추청 비용과 함께 소요 비용, 소요 시간도 실제 처리된 각 계획 노드별 전체 로우 수도 보여준다. 이 옵션은 실행계획기가 추정하는 작업이 실 작업과 비교해서 얼마나 정확한지를 확인하는데 유용하게 사용된다.

analyze옵션 사용시 실제로 쿼리가 실행되기 때문에 운영DB라면 io상태 및 사이드 이펙트 점검 후 실행하여야 한다.

 

verbose (Explain 옵션)

실행 계획의 추가 정보를 보여준다. 각 단계별 실행 계획에서 출력되는 모든 칼럼 목록을 보여주며, 테이블이나 함수에는 해당 스키마 이름을 보여주며, 조건절에서 사용한 칼럼들도 해당 테이블 이름과 함께 보여주며, 통계 정보가 출력되기 위한 각 트리거의 이름들도 함께 보여준다. 초기값은 FALSE.

 

ex) explain analyze verbose 쿼리문;

출처 : 

https://postgresql.kr/docs/9.6/sql-explain.html

'DB > Postgresql' 카테고리의 다른 글

MVCC  (1) 2024.04.11
postgresql - vacuum  (0) 2024.04.11
Window 함수  (0) 2024.04.09
DB index  (0) 2024.04.08
파티션 및 analyze  (1) 2024.04.08