PostgreSQL (PPAS)에서 SQL의 PLAN (실행계획) 확인 방법중 하나를 소개 합니다.
테스를 위해 아래와 같은 절차로 테스트 진행하였습니다.
1. 테스트를 위한 테이블 생성
create table zz_test001
(
a varchar(5),
b varchar(10)
);
create table zz_test002
(
c varchar(5),
a varchar(5),
b varchar(10)
);
2. 테스트를 위한 인덱스 생성 (필요시)
create index zz_IDX_001
on zz_test001
(
a
);
create index zz_IDX_003
on zz_test001
(
b
);
create index zz_IDX_002
on zz_test002
(
a
);
3. SQL PLAN 정보 보기 (실행계획 확인)
prepare temp_plan as
select *
from zz_test001 a, zz_test002 b
where a.a='00001'
and a.a = b.a;
explain execute temp_plan;
4. SQL PLAN 결과
01 : Nested Loop (cost=4.32..13.18 rows=27 width=40)
02 : -> Bitmap Heap Scan on zz_test002 b (cost=4.32..8.43 rows=9 width=23)
03 : Recheck Cond: ((a)::text = '00001'::text)
04 : -> Bitmap Index Scan on zz_idx_002 (cost=0.00..4.32 rows=9 width=0)
05 : Index Cond: ((a)::text = '00001'::text)
06 : -> Materialize (cost=0.00..4.42 rows=3 width=17)
07 : -> Seq Scan on zz_test001 a (cost=0.00..4.40 rows=3 width=17)
08 : Filter: ((a)::text = '00001'::text)
=> PLAN 읽는 순서 : 05 -> 04 -> 03 -> 02 -> 08 -> 07 -> 07 -> 01
cost=4.32..13.18 => 수행 비용 범위
rows=27 => 단계별 Fetch 건수
width=40 => 단계별 Column 자리수 + Column 갯수
by, 박용훈
'2. DBMS이야기 > 01. PostgreSQL' 카테고리의 다른 글
PPAS DB Full 백업 스크립트 작성 및 관리 방법 (0) | 2014.05.23 |
---|---|
[Admin] 1.Architecture : Data Cluster (0) | 2014.05.22 |
[Admin] 1.Architecture : Instance (0) | 2014.05.21 |
PostgreSQL 내부 아키텍처에 따른 성능 지연 이슈? (0) | 2014.05.13 |
PostgreSQL (PPAS) PLAN 및 실행계획 보기 [2] (0) | 2014.05.02 |