hotamul의 개발 이야기

[GPDB] Query Profiling (Visualization) 본문

Dev./Greenplum DB

[GPDB] Query Profiling (Visualization)

hotamul 2022. 12. 16. 10:18

Database 실행 계획을 가독성 있는 그래프로 보는 방법은 아래 링크를 이용하면 됩니다!
Postgres Explain visualizer

Example

-- 파티셔닝이 되어 있는 테이블
EXPLAIN (ANALYZE, FORMAT JSON)
SELECT o_orderpriority,
 count(*) as order_count
FROM orders
WHERE o_orderdate >= date '1994-05-01'
 AND o_orderdate < date '1994-05-01' + interval '3 month'
 AND exists (
 SELECT *
 FROM lineitem
 WHERE l_orderkey = o_orderkey
 AND l_commitdate < l_receiptdate
 )
GROUP BY o_orderpriority
ORDER BY o_orderpriority; 
-- 파티셔닝이 되어있지 않은 테이블
EXPLAIN (ANALYZE, FORMAT JSON)
SELECT o_orderpriority,
 count(*) as order_count
FROM orders_nopart
WHERE o_orderdate >= date '1994-05-01'
 AND o_orderdate < date '1994-05-01' + interval '3 month'
 AND exists (
 SELECT *
 FROM lineitem
 WHERE l_orderkey = o_orderkey
 AND l_commitdate < l_receiptdate
 )
GROUP BY o_orderpriority
ORDER BY o_orderpriority; 

JSON으로 출력된 실행 계획과 SQL를 복사해 Postgres Explain visualizer에 붙여 넣고 submit 버튼을 누르면 graph 형태로 실행 계획을 확인할 수 있습니다!

두 쿼리 플랜을 비교하면 아래와 같이 확인할 수 있습니다!! 👍

 

Comments