SQL_ID cqsz37256v36j, child number 1 ------------------------------------- INSERT /*+append*/ INTO TMP_ACCT_AF NOLOGGING ( DATA_DATE , ACCT_NO , ACCT_ORD , ACCT_NO_PK , ACCT_BAL , D_CMP_BAL , M_CMP_BAL , Y_CMP_BAL , FLAG , ACCT_FLAG , TERM , TERM_FLAG , CUR_CODE , CUR_NAME , SUB_CODE , CUST_NO , CUST_TYPE , CUST_NAME , BANK_CORP_CODE , BRAN_NAME , MGR_CODE , MGR_NAME , OPEN_DATE , FIX_BAL , DIV_FIX_FLAG , ADJUST_AMT , ADJUST_AMT_AF , Y_AVG_AF , Y_ADD_AF , ACCT_INTR , SIM_PROFIT , SEPA_POR , PRI , BRAN_CODE , UNIT1_CODE , UNIT2_CODE , UNIT3_CODE , DEPT1_CODE , INTR_RATE , DUE_DATE ) SELECT /*+use_merge(t1 t2)parallel(t1 16) use_hash(t1 t3)*/ DATA_DATE, ACCT_NO, ACCT_ORD, ACCT_NO_PK, ACCT_BAL, D_CMP_BAL, M_CMP_BAL, Y_CMP_BAL, FLAG, ACCT_FLAG, TERM, TERM_FLAG, CUR_CODE, CUR_NAME, SUB_CODE, CUST_NO, CUST_TYPE, CUST_NAME, BANK_CORP_CODE, BRAN_NAME, NVL(T3.MGR_CODE, T1.MGR_CODE), T1.MGR_NAME, OPEN_DATE, FIX_BAL, DIV_FIX_FLAG, ADJUST_AMT, ADJUST_AMT_AF, Y_AVG_AF, Y_ADD_AF, ACCT_INTR, SIM_PROFIT, SEPA_POR, PRI, T1.BRAN_CODE, T2.UNIT1_CODE, T2.UNIT2_CODE, T1.BRAN_CODE Plan hash value: 1366440900 ------------------------------------------------------------------------------------------------------------------------------------ | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib | ------------------------------------------------------------------------------------------------------------------------------------ | 0 | INSERT STATEMENT | | | | 24 (100)| | | | | | 1 | LOAD AS SELECT | | | | | | | | | | 2 | PX COORDINATOR | | | | | | | | | | 3 | PX SEND QC (RANDOM) | :TQ10005 | 1 | 672 | 24 (30)| 00:00:01 | Q1,05 | P->S | QC (RAND) | | 4 | VIEW | | 1 | 672 | 24 (30)| 00:00:01 | Q1,05 | PCWP | | | 5 | SORT UNIQUE | | 1 | 650 | 24 (30)| 00:00:01 | Q1,05 | PCWP | | | 6 | PX RECEIVE | | 1 | 650 | 23 (27)| 00:00:01 | Q1,05 | PCWP | | | 7 | PX SEND HASH | :TQ10004 | 1 | 650 | 23 (27)| 00:00:01 | Q1,04 | P->P | HASH | |* 8 | HASH JOIN OUTER | | 1 | 650 | 23 (27)| 00:00:01 | Q1,04 | PCWP | | | 9 | PX RECEIVE | | 1 | 622 | 18 (28)| 00:00:01 | Q1,04 | PCWP | | | 10 | PX SEND HASH | :TQ10003 | 1 | 622 | 18 (28)| 00:00:01 | Q1,03 | P->P | HASH | | 11 | MERGE JOIN OUTER | | 1 | 622 | 18 (28)| 00:00:01 | Q1,03 | PCWP | | | 12 | SORT JOIN | | 1 | 601 | 3 (34)| 00:00:01 | Q1,03 | PCWP | | | 13 | PX RECEIVE | | 1 | 601 | 2 (0)| 00:00:01 | Q1,03 | PCWP | | | 14 | PX SEND HASH | :TQ10002 | 1 | 601 | 2 (0)| 00:00:01 | Q1,02 | P->P | HASH | | 15 | PX BLOCK ITERATOR | | 1 | 601 | 2 (0)| 00:00:01 | Q1,02 | PCWC | | |* 16 | TABLE ACCESS FULL| TMP_ACCT_AF2 | 1 | 601 | 2 (0)| 00:00:01 | Q1,02 | PCWP | | |* 17 | SORT JOIN | | 8158 | 167K| 15 (27)| 00:00:01 | Q1,03 | PCWP | | | 18 | BUFFER SORT | | | | | | Q1,03 | PCWC | | | 19 | PX RECEIVE | | 8158 | 167K| 12 (9)| 00:00:01 | Q1,03 | PCWP | | | 20 | PX SEND HASH | :TQ10000 | 8158 | 167K| 12 (9)| 00:00:01 | | S->P | HASH | | 21 | TABLE ACCESS FULL| S_PM_MGR_DEPT_RELA | 8158 | 167K| 12 (9)| 00:00:01 | | | | | 22 | BUFFER SORT | | | | | | Q1,04 | PCWC | | | 23 | PX RECEIVE | | 3902 | 106K| 5 (20)| 00:00:01 | Q1,04 | PCWP | | | 24 | PX SEND HASH | :TQ10001 | 3902 | 106K| 5 (20)| 00:00:01 | | S->P | HASH | |* 25 | INDEX FAST FULL SCAN | MGR_DEPT_RELA_IDX2 | 3902 | 106K| 5 (20)| 00:00:01 | | | | ------------------------------------------------------------------------------------------------------------------------------------ Predicate Information (identified by operation id): --------------------------------------------------- 8 - access("T1"."MGR_CODE"="T3"."MGR_CODE") 16 - access(:Z>=:Z AND :Z<=:Z) 17 - access("T1"."BRAN_CODE"="T2"."UNIT3_CODE") filter("T1"."BRAN_CODE"="T2"."UNIT3_CODE") 25 - filter("T3"."DEPT1_CODE"<>'999999999') TMP_ACCT_AF2 T1 (SELECT DISTINCT T2.UNIT3_CODE, T2.UNIT2_CODE, T2.UNIT1_CODE FROM S_PM_MGR_DEPT_RELA T2) T2 S_PM_MGR_DEPT_RELA T3 T1 和 T2 进行 sort merge join 在 T1和 T3进行 hash join,直接导致temp被耗尽 (SELECT /*+use_merge(t1 t2)parallel(t1 16) use_hash(t1 t3)*/ DATA_DATE, ACCT_NO, ACCT_ORD, ACCT_NO_PK, ACCT_BAL, D_CMP_BAL, M_CMP_BAL, Y_CMP_BAL, FLAG, ACCT_FLAG, TERM, TERM_FLAG, CUR_CODE, CUR_NAME, SUB_CODE, CUST_NO, CUST_TYPE, CUST_NAME, BANK_CORP_CODE, BRAN_NAME, NVL(T3.MGR_CODE, T1.MGR_CODE), T1.MGR_NAME, OPEN_DATE, FIX_BAL, DIV_FIX_FLAG, ADJUST_AMT, ADJUST_AMT_AF, Y_AVG_AF, Y_ADD_AF, ACCT_INTR, SIM_PROFIT, SEPA_POR, PRI, T1.BRAN_CODE, T2.UNIT1_CODE, T2.UNIT2_CODE, T1.BRAN_CODE AS UNIT3_CODE, NVL(T3.DEPT1_CODE, '999999999'), T1.INTR_RATE, T1.DUE_DATE FROM TMP_ACCT_AF2 T1 LEFT JOIN S_PM_MGR_DEPT_RELA T3 ON T1.MGR_CODE = T3.MGR_CODE AND T3.DEPT1_CODE <> '999999999' LEFT JOIN (SELECT DISTINCT T2.UNIT3_CODE, T2.UNIT2_CODE, T2.UNIT1_CODE FROM S_PM_MGR_DEPT_RELA T2) T2 ON T1.BRAN_CODE = T2.UNIT3_CODE) Plan hash value: 4109009912 ----------------------------------------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib | ----------------------------------------------------------------------------------------------------------------------------------------- | 0 | INSERT STATEMENT | | 142M| 28G| | 629 (69)| 00:00:02 | | | | | 1 | LOAD AS SELECT | TMP_ACCT_AF | | | | | | | | | | 2 | PX COORDINATOR | | | | | | | | | | | 3 | PX SEND QC (RANDOM) | :TQ10002 | 142M| 28G| | 629 (69)| 00:00:02 | Q1,02 | P->S | QC (RAND) | | 4 | MERGE JOIN OUTER | | 142M| 28G| | 629 (69)| 00:00:02 | Q1,02 | PCWP | | | 5 | SORT JOIN | | 1500K| 208M| 450M| 254 (27)| 00:00:01 | Q1,02 | PCWP | | |* 6 | HASH JOIN RIGHT OUTER | | 1500K| 208M| | 225 (17)| 00:00:01 | Q1,02 | PCWP | | | 7 | BUFFER SORT | | | | | | | Q1,02 | PCWC | | | 8 | PX RECEIVE | | 3902 | 62432 | | 5 (20)| 00:00:01 | Q1,02 | PCWP | | | 9 | PX SEND BROADCAST | :TQ10000 | 3902 | 62432 | | 5 (20)| 00:00:01 | | S->P | BROADCAST | |* 10 | INDEX FAST FULL SCAN| MGR_DEPT_RELA_IDX2 | 3902 | 62432 | | 5 (20)| 00:00:01 | | | | | 11 | PX BLOCK ITERATOR | | 1407K| 174M| | 217 (16)| 00:00:01 | Q1,02 | PCWC | | | 12 | TABLE ACCESS FULL | TMP_ACCT_AF2 | 1407K| 174M| | 217 (16)| 00:00:01 | Q1,02 | PCWP | | |* 13 | SORT JOIN | | 7315 | 471K| | 17 (36)| 00:00:01 | Q1,02 | PCWP | | | 14 | BUFFER SORT | | | | | | | Q1,02 | PCWC | | | 15 | PX RECEIVE | | 7315 | 471K| | 15 (27)| 00:00:01 | Q1,02 | PCWP | | | 16 | PX SEND BROADCAST | :TQ10001 | 7315 | 471K| | 15 (27)| 00:00:01 | | S->P | BROADCAST | | 17 | VIEW | | 7315 | 471K| | 15 (27)| 00:00:01 | | | | | 18 | SORT UNIQUE | | 7315 | 150K| | 15 (27)| 00:00:01 | | | | | 19 | TABLE ACCESS FULL | S_PM_MGR_DEPT_RELA | 8158 | 167K| | 12 (9)| 00:00:01 | | | | ----------------------------------------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 6 - access("T1"."MGR_CODE"="T3"."MGR_CODE"(+)) 10 - filter("T3"."DEPT1_CODE"(+)<>'999999999') 13 - access("T1"."BRAN_CODE"="T2"."UNIT3_CODE"(+)) filter("T1"."BRAN_CODE"="T2"."UNIT3_CODE"(+)) 正确关联顺序为T1 和 T3进行HASH JOIN 在通过T1和T2 进行sort merge join