2. DBMS이야기/01. PostgreSQL

PostgreSQL (PPAS) PLAN 및 실행계획 보기 [2]

알 수 없는 사용자 2014. 5. 2. 10:45

explain analyze를 통한 PLAN 분석 예제 입니다.
해당 명령은 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. SQL PLAN 정보 보기 (실행계획 확인)
   explain analyze
   select *
   from   zz_test001 a,
          zz_test002 b
   where  a.a = '00001'
   and    a.a = b.a;

3. SQL PLAN 결과
   explain analyze을 통해 SQL을 수행합니다. (explain analyze는 SQL이 실제 수행됩니다.)
   Nested Loop  (cost=0.00..5.84 rows=3 width=40) (actual time=0.020..0.062 rows=3 loops=1)
     ->  Seq Scan on zz_test001 a  (cost=0.00..1.80 rows=1 width=17) (actual time=0.010..0.020 rows=1 loops=1)
           Filter: ((a)::text = '00001'::text)
     ->  Seq Scan on zz_test002 b  (cost=0.00..4.01 rows=3 width=23) (actual time=0.005..0.035 rows=3 loops=1)
           Filter: ((b.a)::text = '00001'::text)
   Total runtime: 0.103 ms

   => cost = 추정치이므로 실제 수행 시간과는 차이가 있습니다.
      actual time = 실제 수행 시간 (explain analyze으로 설정)
      loops = 해당 노드를 수행하는 총회수
      총실행 시간 = 결과행 조직을 위한 시간 + 수행자 기동 및 정지시간, 해석 및 PLAN 작성 시간은 제외
by, 박용훈