Oracle

PCWP、PCWC 和 P->S 是什麼意思?

  • January 14, 2017

Oracle 並行解釋計劃有一個名為 IN-OUT 的列,它通常包含值 P->S、PCWP 和 PCWC。這些值是什麼意思?

這是一個帶有 IN-OUT 列的範例解釋計劃:

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

解釋計劃與並行處理的解釋:

IN-Out 列可以採用以下值:PCWP、PCWC、P->S、S->P 和 P->P。

值 PCWP (Parallel Combine with Parent) 和 PCWC (Parallel Combine wth Child) 表示操作內並行性。每個 PCWP 都會有一個 PCWC。這些操作對由同一組並行程序執行。

值 P->P(Parallel to Parallel)表示操作間的並行性。這種通信將在兩對不同的並行程序之間進行。當並行程序將其數據發送到查詢協調器時,值 P->S(並行到串列)總是出現在 SQL 語句中。值 S->P(串列到並行)在以串列模式讀取表時出現,比如一個小表,然後它的數據被發送到一個並行執行的操作中。

此處此處還有其他參考資料。

引用自:https://dba.stackexchange.com/questions/161061