행위

PQ REPLICATE 힌트

DB CAFE

Dbcafe (토론 | 기여)님의 2022년 9월 30일 (금) 12:23 판 (PQ_REPLICATE 힌트)
thumb_up 추천메뉴 바로가기


PQ_REPLICATE 힌트[편집]

  • 12.1 버전에 PQ_REPLICATE 기능 추가
  • BROADCAST 분배 방식 문제를 개선 하기 위함


  1. BROADCAST 분배 방식은 병렬 서버에서 테이블을 나눠서 읽은 후 다른 병렬 서버로 데이터를 분배하는 방식
    1. 테이블을 8GB로 가정하면 DOP가 8인 경우, 각각의 병렬 서버가 1GB씩 읽은 후 8개의 서버로 1GB씩 분배하므로 I/O는 8GB(1GB*8), 분배량은 64GB(1GB*8*8)
    2. DOP가 16인 경우에는 I/O는 동일하게 8GB(0.5GB*16)지만, 분배량은 128GB(0.5GB*16*16)로 증가
    3. DOP가 커질수록 전송량이 배수적으로 증가하는 구조
  2. 이런 현상을 해결하기 위해 추가된 기능이 PQ_REPLICATE 방식
  3. PQ_REPLICATE 방식은 각각의 병렬 서버에서 전체 테이블을 읽기 때문에 데이터 분배가 발생하지 않는다.
  4. DOP가 8, 16인 경우 각각 64GB(8GB*8), 128GB(8GB*16)의 I/O가 발생
  5. BROADCAST 분배 시 DOP가 높고 테이블 크기가 작은 경우 분배량 감소를 통한 성능 개선
  6. 반대로 잘못된 통계 정보로 인해 크기가 큰 테이블이 PQ_REPLICATE 방식으로 동작할 경우 과도한 I/O로 인해 성능이 저하될 수 있다.
  7. NO_PQ_REPLICATE 힌트를 사용하면 해당 기능의 동작을 제어할 수 있다.
SELECT /*+ ORDERED FULL(A) FULL(B) PARALLEL(A 8) PARALLEL(B 8) USE_HASH(B)
           PQ_DISTRIBUTE(B BROADCAST NONE)
           NO_PQ_REPLICATE(B) */
       *
  FROM t1 a
     , t2 b
 WHERE b.c1 = a.c1;

-------------------------------------------------------------------------
| Id  | Operation               | Name     |    TQ  |IN-OUT| PQ Distrib |
-------------------------------------------------------------------------
|   0 | SELECT STATEMENT        |          |        |      |            |
|   1 |  PX COORDINATOR         |          |        |      |            |
|   2 |   PX SEND QC (RANDOM)   | :TQ10001 |  Q1,01 | P->S | QC (RAND)  |
|*  3 |    HASH JOIN            |          |  Q1,01 | PCWP |            |
|   4 |     PX RECEIVE          |          |  Q1,01 | PCWP |            |
|   5 |      PX SEND BROADCAST  | :TQ10000 |  Q1,00 | P->P | BROADCAST  |
|   6 |       PX BLOCK ITERATOR |          |  Q1,00 | PCWC |            |
|   7 |        TABLE ACCESS FULL| T1       |  Q1,00 | PCWP |            |
|   8 |     PX BLOCK ITERATOR   |          |  Q1,01 | PCWC |            |
|   9 |      TABLE ACCESS FULL  | T2       |  Q1,01 | PCWP |            |
-------------------------------------------------------------------------