Oracle 並行案例解析
| 0 | SELECT STATEMENT | | 107 | 2782 | 3 (34)| 00:00:01 | | | |
| 1 | PX COORDINATOR | | | | | | | | |
| 2 | PX SEND QC (RANDOM) | :TQ10001 | 107 | 2782 | 3 (34)| 00:00:01 | Q1,01 | P->S | QC (RAND) |
| 4 | PX RECEIVE | | 107 | 2782 | 3 (34)| 00:00:01 | Q1,01 | PCWP | |
| 5 | PX SEND HASH | :TQ10000 | 107 | 2782 | 3 (34)| 00:00:01 | Q1,00 | P->P | HASH |
| 7 | PX BLOCK ITERATOR | | 107 | 2782 | 2 (0)| 00:00:01 | Q1,00 | PCWC | |
| 8 | TABLE ACCESS FULL| TEST | 107 | 2782 | 2 (0)| 00:00:01 | Q1,00 | PCWP
執行步驟:
1、並行服務進程TEST表進行全表掃描。
2、並行服務進程以ITERATOR(叠代)方式訪問數據塊,也就是並行協調進程分給每個並行服務進程一個數據片,在這個數據片上,並行服務進程順序地訪問每個數據塊(Iterator),所有的並行服務進程將掃描的數據塊傳給另一組並行服務進程(父進程)用於做Hash Group操作。
3、並行服務父進程對子進程傳遞過來的數據做Hash Group操作。
4、並行服務進程(子進程)將處理完的數據發送出去。
5、並行服務進程(父進程)接收到處理過的數據。
6、合並處理過的數據,按照隨機的順序發給並行協調進程(QC:Query Conordinator)。
7、並行協調進程將處理結果發給用戶。
Oracle 並行案例解析