并行HASH JOIN小表广播问题

SQL语句:
  SELECT /*+parallel(t1 16)*/
   T1.DATA_DATE,
   T1.ACCT_NO,
   T1.ACCT_ORD,
   T1.ACCT_NO_PK,
   T1.ACCT_BAL,
   T1.D_CMP_BAL,
   T1.M_CMP_BAL,
   T1.Y_CMP_BAL,
   T1.FLAG,
   T1.ACCT_FLAG,
   T1.TERM,
   T1.TERM_FLAG,
   T1.CUR_CODE,
   NVL(T5.CUR_NAME, T1.CUR_NAME) AS CUR_NAME,
   T1.SUB_CODE,
   T1.CUST_NO,
   T1.CUST_TYPE,
   NVL(T3.CUST_NAME, T1.CUST_NAME) AS CUST_NAME,
   T1.BANK_CORP_CODE,
   NVL(T4.BRAN_NAME, T1.BRAN_NAME) AS BRAN_NAME,
   T1.MGR_CODE,
   T1.MGR_NAME,
   T1.OPEN_DATE,
   T1.FIX_BAL,
   T1.DIV_FIX_FLAG,
   T1.ADJUST_AMT,
   T1.ADJUST_AMT_AF,
   T1.Y_AVG_AF,
   T1.Y_ADD_AF,
   T1.ACCT_INTR,
   T1.SIM_PROFIT,
   T1.SEPA_POR,
   T1.PRI,
   T1.BRAN_CODE,
   T1.UNIT1_CODE,
   T1.UNIT2_CODE,
   T1.UNIT3_CODE,
   T1.UNIT4_CODE,
   NVL(T6.UNIT5_CODE, T1.UNIT5_CODE) AS UNIT5_CODE,
   NVL(T6.DEPT1_CODE, T1.DEPT1_CODE) AS DEPT1_CODE,
   T1.INTR_RATE,
   T1.DUE_DATE
    FROM (SELECT /*++use_hash(T1 T2) parallel(T1 16)*/
           20121223 AS DATA_DATE,
           NVL(T1.ACCT_NO, T2.ACCT_NO) AS ACCT_NO,
           NVL(T1.ACCT_ORD, T2.ACCT_ORD) AS ACCT_ORD,
           NVL(T1.ACCT_NO_PK, T2.ACCT_NO_PK) AS ACCT_NO_PK,
           NVL(T1.ACCT_BAL, 0) AS ACCT_BAL,
           NVL(T1.D_CMP_BAL, T2.D_CMP_BAL) AS D_CMP_BAL,
           NVL(T1.M_CMP_BAL, T2.M_CMP_BAL) AS M_CMP_BAL,
           NVL(T1.Y_CMP_BAL, T2.Y_CMP_BAL) AS Y_CMP_BAL,
           NVL(T1.FLAG, T2.FLAG) AS FLAG,
           NVL(T1.ACCT_FLAG, T2.ACCT_FLAG) AS ACCT_FLAG,
           NVL(T1.TERM, T2.TERM) AS TERM,
           NVL(T1.TERM_FLAG, T2.TERM_FLAG) AS TERM_FLAG,
           NVL(T1.CUR_CODE, T2.CUR_CODE) AS CUR_CODE,
           NVL(T1.CUR_NAME, T2.CUR_NAME) AS CUR_NAME,
           NVL(T1.SUB_CODE, T2.SUB_CODE) AS SUB_CODE,
           NVL(T1.CUST_NO, T2.CUST_NO) AS CUST_NO,
           NVL(T1.CUST_TYPE, T2.CUST_TYPE) AS CUST_TYPE,
           NVL(T1.CUST_NAME, T2.CUST_NAME) AS CUST_NAME,
           NVL(T1.BANK_CORP_CODE, T2.BANK_CORP_CODE) AS BANK_CORP_CODE,
           NVL(T1.BRAN_NAME, T2.BRAN_NAME) AS BRAN_NAME,
           NVL(T1.MGR_CODE, T2.MGR_CODE) AS MGR_CODE,
           NVL(T1.MGR_NAME, T2.MGR_NAME) AS MGR_NAME,
           NVL(T1.OPEN_DATE, T2.OPEN_DATE) AS OPEN_DATE,
           NVL(T1.FIX_BAL, 0) AS FIX_BAL,
           NVL(T1.DIV_FIX_FLAG, T2.DIV_FIX_FLAG) AS DIV_FIX_FLAG,
           NVL(T1.ADJUST_AMT, 0) AS ADJUST_AMT,
           NVL(T1.ADJUST_AMT_AF, 0) AS ADJUST_AMT_AF,
           CASE
             WHEN SUBSTR(20121223, -4) = '0101' THEN
              NVL(T1.ADJUST_AMT_AF, 0) / 90
             ELSE
              (NVL(T1.ADJUST_AMT_AF, 0) + NVL(T2.Y_ADD_AF, 0)) / 90
           END AS Y_AVG_AF,
           CASE
             WHEN SUBSTR(20121223, -4) = '0101' THEN
              NVL(T1.ADJUST_AMT_AF, 0)
             ELSE
              (NVL(T1.ADJUST_AMT_AF, 0) + NVL(T2.Y_ADD_AF, 0))
           END AS Y_ADD_AF,
           NVL(T1.ACCT_INTR, 0) AS ACCT_INTR,
           NVL(T1.SIM_PROFIT, 0) AS SIM_PROFIT,
           NVL(T1.SEPA_POR, T2.SEPA_POR) AS SEPA_POR,
           NVL(T1.PRI, T2.PRI) AS PRI,
           NVL(T1.BRAN_CODE, T2.BRAN_CODE) AS BRAN_CODE,
           NVL(T1.UNIT1_CODE, T2.UNIT1_CODE) AS UNIT1_CODE,
           NVL(T1.UNIT2_CODE, T2.UNIT2_CODE) AS UNIT2_CODE,
           NVL(T1.UNIT3_CODE, T2.UNIT3_CODE) AS UNIT3_CODE,
           NVL(T1.UNIT4_CODE, T2.UNIT4_CODE) AS UNIT4_CODE,
           NVL(T1.UNIT5_CODE, T2.UNIT5_CODE) AS UNIT5_CODE,
           NVL(T1.DEPT1_CODE, T2.DEPT1_CODE) AS DEPT1_CODE,
           NVL(T1.INTR_RATE, T2.INTR_RATE) AS INTR_RATE,
           NVL(T1.DUE_DATE, T2.DUE_DATE) AS DUE_DATE
            FROM (SELECT /*+parallel(a 16)*/
                   *
                    FROM T_PM_ACCT_DTL_AF A
                   WHERE DATA_DATE = 20121223
                     AND ACCT_FLAG IN ('DEPOSIT',
                                       'LOAN',
                                       'OUTER',
                                       'ETC',
                                       'CHANGKOU',
                                       'DYMX')
                     AND FLAG IS NOT NULL
                     AND DEPT1_CODE IS NOT NULL
                     AND CUR_CODE != 0
                     AND LENGTH(TRIM(MGR_CODE)) >= 3) T1
            FULL JOIN (SELECT /*+parallel(a 16)*/
                       *
                        FROM T_PM_ACCT_DTL_AF A
                       WHERE DATA_DATE = 20131222
                         AND ACCT_FLAG IN ('DEPOSIT',
                                           'LOAN',
                                           'OUTER',
                                           'ETC',
                                           'CHANGKOU',
                                           'DYMX')
                         AND FLAG IS NOT NULL
                         AND DEPT1_CODE IS NOT NULL
                         AND CUR_CODE != 0
                         AND LENGTH(TRIM(MGR_CODE)) >= 3) T2
              ON T1.ACCT_NO_PK = T2.ACCT_NO_PK
             AND NVL(T1.MGR_CODE, 'XXXXX') = NVL(T2.MGR_CODE, 'XXXXX')
             AND NVL(T1.UNIT2_CODE, 'XXXXX') = NVL(T2.UNIT2_CODE, 'XXXXX')
             AND NVL(T1.SUB_CODE, 'XXXXX') = NVL(T2.SUB_CODE, 'XXXXX')
             AND NVL(T1.FLAG, 'X') = NVL(T2.FLAG, 'X')
             AND NVL(T1.TERM, 0) = NVL(T2.TERM, 0)
          UNION ALL
          SELECT /*+use_hash(T1 T2) parallel(T1 16)*/
           20121223 AS DATA_DATE,
           NVL(T1.ACCT_NO, T2.ACCT_NO) AS ACCT_NO,
           NVL(T1.ACCT_ORD, T2.ACCT_ORD) AS ACCT_ORD,
           NVL(T1.ACCT_NO_PK, T2.ACCT_NO_PK) AS ACCT_NO_PK,
           NVL(T1.ACCT_BAL, 0) AS ACCT_BAL,
           NVL(T1.D_CMP_BAL, T2.D_CMP_BAL) AS D_CMP_BAL,
           NVL(T1.M_CMP_BAL, T2.M_CMP_BAL) AS M_CMP_BAL,
           NVL(T1.Y_CMP_BAL, T2.Y_CMP_BAL) AS Y_CMP_BAL,
           NVL(T1.FLAG, T2.FLAG) AS FLAG,
           NVL(T1.ACCT_FLAG, T2.ACCT_FLAG) AS ACCT_FLAG,
           NVL(T1.TERM, T2.TERM) AS TERM,
           NVL(T1.TERM_FLAG, T2.TERM_FLAG) AS TERM_FLAG,
           NVL(T1.CUR_CODE, T2.CUR_CODE) AS CUR_CODE,
           NVL(T1.CUR_NAME, T2.CUR_NAME) AS CUR_NAME,
           NVL(T1.SUB_CODE, T2.SUB_CODE) AS SUB_CODE,
           NVL(T1.CUST_NO, T2.CUST_NO) AS CUST_NO,
           NVL(T1.CUST_TYPE, T2.CUST_TYPE) AS CUST_TYPE,
           NVL(T1.CUST_NAME, T2.CUST_NAME) AS CUST_NAME,
           NVL(T1.BANK_CORP_CODE, T2.BANK_CORP_CODE) AS BANK_CORP_CODE,
           NVL(T1.BRAN_NAME, T2.BRAN_NAME) AS BRAN_NAME,
           NVL(T1.MGR_CODE, T2.MGR_CODE) AS MGR_CODE,
           NVL(T1.MGR_NAME, T2.MGR_NAME) AS MGR_NAME,
           NVL(T1.OPEN_DATE, T2.OPEN_DATE) AS OPEN_DATE,
           NVL(T1.FIX_BAL, 0) AS FIX_BAL,
           NVL(T1.DIV_FIX_FLAG, T2.DIV_FIX_FLAG) AS DIV_FIX_FLAG,
           NVL(T1.ADJUST_AMT, 0) AS ADJUST_AMT,
           NVL(T1.ADJUST_AMT_AF, 0) AS ADJUST_AMT_AF,
           CASE
             WHEN SUBSTR(20121223, -4) = '0101' THEN
              NVL(T1.ADJUST_AMT_AF, 0) / 90
             ELSE
              (NVL(T1.ADJUST_AMT_AF, 0) + NVL(T2.Y_ADD_AF, 0)) / 90
           END AS Y_AVG_AF,
           CASE
             WHEN SUBSTR(20121223, -4) = '0101' THEN
              NVL(T1.ADJUST_AMT_AF, 0)
             ELSE
              (NVL(T1.ADJUST_AMT_AF, 0) + NVL(T2.Y_ADD_AF, 0))
           END AS Y_ADD_AF,
           NVL(T1.ACCT_INTR, 0) AS ACCT_INTR,
           NVL(T1.SIM_PROFIT, 0) AS SIM_PROFIT,
           NVL(T1.SEPA_POR, T2.SEPA_POR) AS SEPA_POR,
           NVL(T1.PRI, T2.PRI) AS PRI,
           NVL(T1.BRAN_CODE, T2.BRAN_CODE) AS BRAN_CODE,
           NVL(T1.UNIT1_CODE, T2.UNIT1_CODE) AS UNIT1_CODE,
           NVL(T1.UNIT2_CODE, T2.UNIT2_CODE) AS UNIT2_CODE,
           NVL(T1.UNIT3_CODE, T2.UNIT3_CODE) AS UNIT3_CODE,
           NVL(T1.UNIT4_CODE, T2.UNIT4_CODE) AS UNIT4_CODE,
           NVL(T1.UNIT5_CODE, T2.UNIT5_CODE) AS UNIT5_CODE,
           NVL(T1.DEPT1_CODE, T2.DEPT1_CODE) AS DEPT1_CODE,
           NVL(T1.INTR_RATE, T2.INTR_RATE) AS INTR_RATE,
           NVL(T1.DUE_DATE, T2.DUE_DATE) AS DUE_DATE
            FROM (SELECT /*+parallel(a 16)*/
                   *
                    FROM T_PM_ACCT_DTL_AF A
                   WHERE DATA_DATE = 20121223
                     AND ACCT_FLAG IN ('INTLBU', 'PFS', 'INCOME')
                     AND FLAG <> '625'
                     AND FLAG IS NOT NULL
                     AND DEPT1_CODE IS NOT NULL
                     AND CUR_CODE != 0
                     AND LENGTH(TRIM(MGR_CODE)) >= 3) T1
            FULL JOIN (SELECT /*+parallel(a 16)*/
                        *
                         FROM T_PM_ACCT_DTL_AF A
                        WHERE DATA_DATE = 20131222
                          AND ACCT_FLAG IN ('INTLBU', 'PFS', 'INCOME')
                          AND FLAG <> '625'
                          AND FLAG IS NOT NULL
                          AND DEPT1_CODE IS NOT NULL
                          AND CUR_CODE != 0
                          AND LENGTH(TRIM(MGR_CODE)) >= 3) T2
              ON NVL(T1.ACCT_NO_PK, 'XXXXX') = NVL(T2.ACCT_NO_PK, 'XXXXX')
             AND NVL(T1.MGR_CODE, 'XXXXX') = NVL(T2.MGR_CODE, 'XXXXX')
             AND NVL(T1.UNIT3_CODE, 'XXXXX') = NVL(T2.UNIT3_CODE, 'XXXXX')
             AND NVL(T1.UNIT4_CODE, 'XXXXX') = NVL(T2.UNIT4_CODE, 'XXXXX')
             AND NVL(T1.FLAG, 'X') = NVL(T2.FLAG, 'X')
          UNION ALL
          SELECT /*+use_hash(T1 T2) parallel(T1 16)*/
           20121223 AS DATA_DATE,
           NVL(T1.ACCT_NO, T2.ACCT_NO) AS ACCT_NO,
           NVL(T1.ACCT_ORD, T2.ACCT_ORD) AS ACCT_ORD,
           NVL(T1.ACCT_NO_PK, T2.ACCT_NO_PK) AS ACCT_NO_PK,
           NVL(T1.ACCT_BAL, 0) AS ACCT_BAL,
           NVL(T1.D_CMP_BAL, T2.D_CMP_BAL) AS D_CMP_BAL,
           NVL(T1.M_CMP_BAL, T2.M_CMP_BAL) AS M_CMP_BAL,
           NVL(T1.Y_CMP_BAL, T2.Y_CMP_BAL) AS Y_CMP_BAL,
           NVL(T1.FLAG, T2.FLAG) AS FLAG,
           NVL(T1.ACCT_FLAG, T2.ACCT_FLAG) AS ACCT_FLAG,
           NVL(T1.TERM, T2.TERM) AS TERM,
           NVL(T1.TERM_FLAG, T2.TERM_FLAG) AS TERM_FLAG,
           NVL(T1.CUR_CODE, T2.CUR_CODE) AS CUR_CODE,
           NVL(T1.CUR_NAME, T2.CUR_NAME) AS CUR_NAME,
           NVL(T1.SUB_CODE, T2.SUB_CODE) AS SUB_CODE,
           NVL(T1.CUST_NO, T2.CUST_NO) AS CUST_NO,
           NVL(T1.CUST_TYPE, T2.CUST_TYPE) AS CUST_TYPE,
           NVL(T1.CUST_NAME, T2.CUST_NAME) AS CUST_NAME,
           NVL(T1.BANK_CORP_CODE, T2.BANK_CORP_CODE) AS BANK_CORP_CODE,
           NVL(T1.BRAN_NAME, T2.BRAN_NAME) AS BRAN_NAME,
           NVL(T1.MGR_CODE, T2.MGR_CODE) AS MGR_CODE,
           NVL(T1.MGR_NAME, T2.MGR_NAME) AS MGR_NAME,
           NVL(T1.OPEN_DATE, T2.OPEN_DATE) AS OPEN_DATE,
           NVL(T1.FIX_BAL, 0) AS FIX_BAL,
           NVL(T1.DIV_FIX_FLAG, T2.DIV_FIX_FLAG) AS DIV_FIX_FLAG,
           NVL(T1.ADJUST_AMT, 0) AS ADJUST_AMT,
           NVL(T1.ADJUST_AMT_AF, 0) AS ADJUST_AMT_AF,
           CASE
             WHEN SUBSTR(20121223, -4) = '0101' THEN
              NVL(T1.ADJUST_AMT_AF, 0) / 90
             ELSE
              (NVL(T1.ADJUST_AMT_AF, 0) + NVL(T2.Y_ADD_AF, 0)) / 90
           END AS Y_AVG_AF,
           CASE
             WHEN SUBSTR(20121223, -4) = '0101' THEN
              NVL(T1.ADJUST_AMT_AF, 0)
             ELSE
              (NVL(T1.ADJUST_AMT_AF, 0) + NVL(T2.Y_ADD_AF, 0))
           END AS Y_ADD_AF,
           NVL(T1.ACCT_INTR, 0) AS ACCT_INTR,
           NVL(T1.SIM_PROFIT, 0) AS SIM_PROFIT,
           NVL(T1.SEPA_POR, T2.SEPA_POR) AS SEPA_POR,
           NVL(T1.PRI, T2.PRI) AS PRI,
           NVL(T1.BRAN_CODE, T2.BRAN_CODE) AS BRAN_CODE,
           NVL(T1.UNIT1_CODE, T2.UNIT1_CODE) AS UNIT1_CODE,
           NVL(T1.UNIT2_CODE, T2.UNIT2_CODE) AS UNIT2_CODE,
           NVL(T1.UNIT3_CODE, T2.UNIT3_CODE) AS UNIT3_CODE,
           NVL(T1.UNIT4_CODE, T2.UNIT4_CODE) AS UNIT4_CODE,
           NVL(T1.UNIT5_CODE, T2.UNIT5_CODE) AS UNIT5_CODE,
           NVL(T1.DEPT1_CODE, T2.DEPT1_CODE) AS DEPT1_CODE,
           NVL(T1.INTR_RATE, T2.INTR_RATE) AS INTR_RATE,
           NVL(T1.DUE_DATE, T2.DUE_DATE) AS DUE_DATE
            FROM (SELECT /*+parallel(a 16)*/
                   *
                    FROM T_PM_ACCT_DTL_AF A
                   WHERE DATA_DATE = 20121223
                     AND ACCT_FLAG = 'PFS'
                     AND FLAG = '625'
                     AND DEPT1_CODE IS NOT NULL
                     AND CUR_CODE != 0
                     AND LENGTH(TRIM(MGR_CODE)) >= 3
                     AND FLAG IS NOT NULL) T1
            FULL JOIN (SELECT /*+parallel(a 16)*/
                        *
                         FROM T_PM_ACCT_DTL_AF A
                        WHERE DATA_DATE = 20131222
                          AND ACCT_FLAG = 'PFS'
                          AND FLAG = '625'
                          AND DEPT1_CODE IS NOT NULL
                          AND CUR_CODE != 0
                          AND LENGTH(TRIM(MGR_CODE)) >= 3
                          AND FLAG IS NOT NULL) T2
              ON NVL(T1.ACCT_NO_PK, 'XXXXX') = NVL(T2.ACCT_NO_PK, 'XXXXX')
             AND NVL(T1.MGR_CODE, 'XXXXX') = NVL(T2.MGR_CODE, 'XXXXX')
             AND NVL(T1.UNIT3_CODE, 'XXXXX') = NVL(T2.UNIT3_CODE, 'XXXXX')
             AND NVL(T1.UNIT4_CODE, 'XXXXX') = NVL(T2.UNIT4_CODE, 'XXXXX')
             AND NVL(T1.FLAG, 'X') = NVL(T2.FLAG, 'X')) T1
    LEFT JOIN S_PM_CUSTOMER T3
      ON T1.CUST_NO = T3.CUST_NO
     AND T1.BANK_CORP_CODE = T3.BANK_CORP_CODE
    LEFT JOIN S_PM_BRANCH T4
      ON T1.BRAN_CODE = T4.BRAN_CODE
    LEFT JOIN S_PM_CURRENCY T5
      ON T1.CUR_CODE = T5.CUR_CODE
    LEFT JOIN (SELECT /*+parallel(a 16)*/
                *
                 FROM S_PM_MGR_DEPT_RELA A
                WHERE DEPT1_CODE <> '999999999') T6
      ON T1.MGR_CODE = T6.MGR_CODE
     AND T1.UNIT3_CODE = T6.UNIT3_CODE
     AND T1.UNIT4_CODE = T6.UNIT4_CODE

 小表未广播:
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                                                | Name                  | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |    TQ  |IN-OUT| PQ Distrib |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|   0 | INSERT STATEMENT                                         |                       |       |       |  9264K(100)|          |       |       |        |      |            |
|   1 |  LOAD AS SELECT                                          |                       |       |       |            |          |       |       |        |      |            |
|   2 |   PX COORDINATOR                                         |                       |       |       |            |          |       |       |        |      |            |
|   3 |    PX SEND QC (RANDOM)                                   | :TQ10015              |   480 |   403K|  9264K  (1)| 30:52:56 |       |       |  Q1,15 | P->S | QC (RAND)  |
|*  4 |     HASH JOIN OUTER BUFFERED                             |                       |   480 |   403K|  9264K  (1)| 30:52:56 |       |       |  Q1,15 | PCWP |            |
|   5 |      PX RECEIVE                                          |                       |     6 |  4536 |  9264K  (1)| 30:52:56 |       |       |  Q1,15 | PCWP |            |
|   6 |       PX SEND HASH                                       | :TQ10013              |     6 |  4536 |  9264K  (1)| 30:52:56 |       |       |  Q1,13 | P->P | HASH       |
|   7 |        NESTED LOOPS OUTER                                |                       |     6 |  4536 |  9264K  (1)| 30:52:56 |       |       |  Q1,13 | PCWP |            |
|*  8 |         HASH JOIN OUTER                                  |                       |     6 |  4200 |  9264K  (1)| 30:52:56 |       |       |  Q1,13 | PCWP |            |
|   9 |          PX RECEIVE                                      |                       |     6 |  3966 |  9264K  (1)| 30:52:56 |       |       |  Q1,13 | PCWP |            |
|  10 |           PX SEND HASH                                   | :TQ10012              |     6 |  3966 |  9264K  (1)| 30:52:56 |       |       |  Q1,12 | P->P | HASH       |
|* 11 |            HASH JOIN OUTER                               |                       |     6 |  3966 |  9264K  (1)| 30:52:56 |       |       |  Q1,12 | PCWP |            |
|  12 |             PX RECEIVE                                   |                       |     6 |  3816 |  9264K  (1)| 30:52:56 |       |       |  Q1,12 | PCWP |            |
|  13 |              PX SEND HASH                                | :TQ10011              |     6 |  3816 |  9264K  (1)| 30:52:56 |       |       |  Q1,11 | P->P | HASH       |
|  14 |               BUFFER SORT                                |                       |    82 | 53792 |            |          |       |       |  Q1,11 | PCWP |            |
|  15 |                VIEW                                      |                       |     6 |  3816 |  9264K  (1)| 30:52:56 |       |       |  Q1,11 | PCWP |            |
|  16 |                 UNION-ALL                                |                       |       |       |            |          |       |       |  Q1,11 | PCWP |            |
|  17 |                  VIEW                                    |                       |     2 |  2368 |  4629K  (1)| 15:25:58 |       |       |  Q1,11 | PCWP |            |
|  18 |                   UNION-ALL                              |                       |       |       |            |          |       |       |  Q1,11 | PCWP |            |
|* 19 |                    HASH JOIN OUTER                       |                       |     1 |  1132 |  2314K  (1)| 07:42:59 |       |       |  Q1,11 | PCWP |            |
|  20 |                     PX RECEIVE                           |                       |     1 |   605 |  1157K  (1)| 03:51:30 |       |       |  Q1,11 | PCWP |            |
|  21 |                      PX SEND HASH                        | :TQ10003              |     1 |   605 |  1157K  (1)| 03:51:30 |       |       |  Q1,03 | P->P | HASH       |
|  22 |                       PX BLOCK ITERATOR                  |                       |     1 |   605 |  1157K  (1)| 03:51:30 |   KEY |   KEY |  Q1,03 | PCWC |            |
|* 23 |                        TABLE ACCESS FULL                 | T_PM_ACCT_DTL_AF      |     1 |   605 |  1157K  (1)| 03:51:30 |   KEY |   KEY |  Q1,03 | PCWP |            |
|  24 |                     PX RECEIVE                           |                       |     1 |   527 |  1157K  (1)| 03:51:30 |       |       |  Q1,11 | PCWP |            |
|  25 |                      PX SEND HASH                        | :TQ10004              |     1 |   527 |  1157K  (1)| 03:51:30 |       |       |  Q1,04 | P->P | HASH       |
|  26 |                       PX BLOCK ITERATOR                  |                       |     1 |   527 |  1157K  (1)| 03:51:30 |   KEY |   KEY |  Q1,04 | PCWC |            |
|  27 |                        VIEW                              |                       |     1 |   527 |  1157K  (1)| 03:51:30 |       |       |  Q1,04 | PCWP |            |
|* 28 |                         TABLE ACCESS FULL                | T_PM_ACCT_DTL_AF      |     1 |   540 |  1157K  (1)| 03:51:30 |   KEY |   KEY |  Q1,04 | PCWP |            |
|* 29 |                    HASH JOIN ANTI                        |                       |     1 |   696 |  2314K  (1)| 07:42:59 |       |       |  Q1,11 | PCWP |            |
|  30 |                     PX RECEIVE                           |                       |     1 |   540 |  1157K  (1)| 03:51:30 |       |       |  Q1,11 | PCWP |            |
|  31 |                      PX SEND HASH                        | :TQ10005              |     1 |   540 |  1157K  (1)| 03:51:30 |       |       |  Q1,05 | P->P | HASH       |
|  32 |                       PX BLOCK ITERATOR                  |                       |     1 |   540 |  1157K  (1)| 03:51:30 |   KEY |   KEY |  Q1,05 | PCWC |            |
|* 33 |                        TABLE ACCESS FULL                 | T_PM_ACCT_DTL_AF      |     1 |   540 |  1157K  (1)| 03:51:30 |   KEY |   KEY |  Q1,05 | PCWP |            |
|  34 |                     PX RECEIVE                           |                       |     1 |   156 |  1157K  (1)| 03:51:30 |       |       |  Q1,11 | PCWP |            |
|  35 |                      PX SEND HASH                        | :TQ10006              |     1 |   156 |  1157K  (1)| 03:51:30 |       |       |  Q1,06 | P->P | HASH       |
|  36 |                       PX BLOCK ITERATOR                  |                       |     1 |   156 |  1157K  (1)| 03:51:30 |   KEY |   KEY |  Q1,06 | PCWC |            |
|* 37 |                        TABLE ACCESS FULL                 | T_PM_ACCT_DTL_AF      |     1 |   156 |  1157K  (1)| 03:51:30 |   KEY |   KEY |  Q1,06 | PCWP |            |
|  38 |                  VIEW                                    |                       |     2 |  2368 |  4629K  (1)| 15:25:58 |       |       |  Q1,11 | PCWP |            |
|  39 |                   UNION-ALL                              |                       |       |       |            |          |       |       |  Q1,11 | PCWP |            |
|* 40 |                    HASH JOIN OUTER                       |                       |     1 |  1132 |  2314K  (1)| 07:42:59 |       |       |  Q1,11 | PCWP |            |
|  41 |                     PX RECEIVE                           |                       |     1 |   605 |  1157K  (1)| 03:51:30 |       |       |  Q1,11 | PCWP |            |
|  42 |                      PX SEND HASH                        | :TQ10007              |     1 |   605 |  1157K  (1)| 03:51:30 |       |       |  Q1,07 | P->P | HASH       |
|  43 |                       PX BLOCK ITERATOR                  |                       |     1 |   605 |  1157K  (1)| 03:51:30 |   KEY |   KEY |  Q1,07 | PCWC |            |
|* 44 |                        TABLE ACCESS FULL                 | T_PM_ACCT_DTL_AF      |     1 |   605 |  1157K  (1)| 03:51:30 |   KEY |   KEY |  Q1,07 | PCWP |            |
|  45 |                     PX RECEIVE                           |                       |     1 |   527 |  1157K  (1)| 03:51:30 |       |       |  Q1,11 | PCWP |            |
|  46 |                      PX SEND HASH                        | :TQ10008              |     1 |   527 |  1157K  (1)| 03:51:30 |       |       |  Q1,08 | P->P | HASH       |
|  47 |                       PX BLOCK ITERATOR                  |                       |     1 |   527 |  1157K  (1)| 03:51:30 |   KEY |   KEY |  Q1,08 | PCWC |            |
|  48 |                        VIEW                              |                       |     1 |   527 |  1157K  (1)| 03:51:30 |       |       |  Q1,08 | PCWP |            |
|* 49 |                         TABLE ACCESS FULL                | T_PM_ACCT_DTL_AF      |     1 |   540 |  1157K  (1)| 03:51:30 |   KEY |   KEY |  Q1,08 | PCWP |            |
|* 50 |                    HASH JOIN ANTI                        |                       |     1 |   663 |  2314K  (1)| 07:42:59 |       |       |  Q1,11 | PCWP |            |
|  51 |                     PX RECEIVE                           |                       |     1 |   540 |  1157K  (1)| 03:51:30 |       |       |  Q1,11 | PCWP |            |
|  52 |                      PX SEND HASH                        | :TQ10009              |     1 |   540 |  1157K  (1)| 03:51:30 |       |       |  Q1,09 | P->P | HASH       |
|  53 |                       PX BLOCK ITERATOR                  |                       |     1 |   540 |  1157K  (1)| 03:51:30 |   KEY |   KEY |  Q1,09 | PCWC |            |
|* 54 |                        TABLE ACCESS FULL                 | T_PM_ACCT_DTL_AF      |     1 |   540 |  1157K  (1)| 03:51:30 |   KEY |   KEY |  Q1,09 | PCWP |            |
|  55 |                     PX RECEIVE                           |                       |     1 |   123 |  1157K  (1)| 03:51:30 |       |       |  Q1,11 | PCWP |            |
|  56 |                      PX SEND HASH                        | :TQ10010              |     1 |   123 |  1157K  (1)| 03:51:30 |       |       |  Q1,10 | P->P | HASH       |
|  57 |                       PX BLOCK ITERATOR                  |                       |     1 |   123 |  1157K  (1)| 03:51:30 |   KEY |   KEY |  Q1,10 | PCWC |            |
|* 58 |                        TABLE ACCESS FULL                 | T_PM_ACCT_DTL_AF      |     1 |   123 |  1157K  (1)| 03:51:30 |   KEY |   KEY |  Q1,10 | PCWP |            |
|  59 |                  BUFFER SORT                             |                       |       |       |            |          |       |       |  Q1,11 | PCWC |            |
|  60 |                   PX RECEIVE                             |                       |     2 |  2368 |  5006   (1)| 00:01:01 |       |       |  Q1,11 | PCWP |            |
|  61 |                    PX SEND ROUND-ROBIN                   | :TQ10000              |     2 |  2368 |  5006   (1)| 00:01:01 |       |       |        | S->P | RND-ROBIN  |
|  62 |                     VIEW                                 |                       |     2 |  2368 |  5006   (1)| 00:01:01 |       |       |        |      |            |
|  63 |                      UNION-ALL                           |                       |       |       |            |          |       |       |        |      |            |
|* 64 |                       HASH JOIN OUTER                    |                       |     1 |  1145 |  2503   (1)| 00:00:31 |       |       |        |      |            |
|  65 |                        PARTITION LIST SINGLE             |                       |     1 |   605 |     2   (0)| 00:00:01 |   KEY |   KEY |        |      |            |
|* 66 |                         TABLE ACCESS BY LOCAL INDEX ROWID| T_PM_ACCT_DTL_AF      |     1 |   605 |     2   (0)| 00:00:01 |   KEY |   KEY |        |      |            |
|* 67 |                          INDEX RANGE SCAN                | T_PM_ACCT_DTL_AF_IDX1 |  8504K|       |     1   (0)| 00:00:01 |   KEY |   KEY |        |      |            |
|  68 |                        PARTITION LIST SINGLE             |                       |     1 |   540 |  2501   (1)| 00:00:31 |   KEY |   KEY |        |      |            |
|* 69 |                         TABLE ACCESS BY LOCAL INDEX ROWID| T_PM_ACCT_DTL_AF      |     1 |   540 |  2501   (1)| 00:00:31 |   KEY |   KEY |        |      |            |
|* 70 |                          INDEX RANGE SCAN                | T_PM_ACCT_DTL_AF_IDX1 |  8504K|       |   569   (0)| 00:00:07 |   KEY |   KEY |        |      |            |
|  71 |                       NESTED LOOPS ANTI                  |                       |     1 |   663 |  2503   (1)| 00:00:31 |       |       |        |      |            |
|  72 |                        PARTITION LIST SINGLE             |                       |     1 |   540 |  2501   (1)| 00:00:31 |   KEY |   KEY |        |      |            |
|* 73 |                         TABLE ACCESS BY LOCAL INDEX ROWID| T_PM_ACCT_DTL_AF      |     1 |   540 |  2501   (1)| 00:00:31 |   KEY |   KEY |        |      |            |
|* 74 |                          INDEX RANGE SCAN                | T_PM_ACCT_DTL_AF_IDX1 |  8504K|       |   569   (0)| 00:00:07 |   KEY |   KEY |        |      |            |
|  75 |                        PARTITION LIST SINGLE             |                       |     1 |   123 |     0   (0)|          |   KEY |   KEY |        |      |            |
|* 76 |                         TABLE ACCESS BY LOCAL INDEX ROWID| T_PM_ACCT_DTL_AF      |     1 |   123 |     0   (0)|          |   KEY |   KEY |        |      |            |
|* 77 |                          INDEX RANGE SCAN                | T_PM_ACCT_DTL_AF_IDX1 |  8504K|       |     0   (0)|          |   KEY |   KEY |        |      |            |
|  78 |             BUFFER SORT                                  |                       |       |       |            |          |       |       |  Q1,12 | PCWC |            |
|  79 |              PX RECEIVE                                  |                       |    18 |   450 |     3   (0)| 00:00:01 |       |       |  Q1,12 | PCWP |            |
|  80 |               PX SEND HASH                               | :TQ10001              |    18 |   450 |     3   (0)| 00:00:01 |       |       |        | S->P | HASH       |
|  81 |                TABLE ACCESS FULL                         | S_PM_CURRENCY         |    18 |   450 |     3   (0)| 00:00:01 |       |       |        |      |            |
|  82 |          BUFFER SORT                                     |                       |       |       |            |          |       |       |  Q1,13 | PCWC |            |
|  83 |           PX RECEIVE                                     |                       |    98 |  3822 |     3   (0)| 00:00:01 |       |       |  Q1,13 | PCWP |            |
|  84 |            PX SEND HASH                                  | :TQ10002              |    98 |  3822 |     3   (0)| 00:00:01 |       |       |        | S->P | HASH       |
|  85 |             TABLE ACCESS FULL                            | S_PM_BRANCH           |    98 |  3822 |     3   (0)| 00:00:01 |       |       |        |      |            |
|  86 |         TABLE ACCESS BY INDEX ROWID                      | S_PM_CUSTOMER         |     1 |    56 |     2   (0)| 00:00:01 |       |       |  Q1,13 | PCWP |            |
|* 87 |          INDEX UNIQUE SCAN                               | IDX_PM_CUSTOMER       |     1 |       |     1   (0)| 00:00:01 |       |       |  Q1,13 | PCWP |            |
|  88 |      PX RECEIVE                                          |                       |  6562 |   672K|     4   (0)| 00:00:01 |       |       |  Q1,15 | PCWP |            |
|  89 |       PX SEND HASH                                       | :TQ10014              |  6562 |   672K|     4   (0)| 00:00:01 |       |       |  Q1,14 | P->P | HASH       |
|  90 |        PX BLOCK ITERATOR                                 |                       |  6562 |   672K|     4   (0)| 00:00:01 |       |       |  Q1,14 | PCWC |            |
|* 91 |         TABLE ACCESS FULL                                | S_PM_MGR_DEPT_RELA    |  6562 |   672K|     4   (0)| 00:00:01 |       |       |  Q1,14 | PCWP |            |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
   4 - access("T1"."UNIT4_CODE"="A"."UNIT4_CODE" AND "T1"."UNIT3_CODE"="A"."UNIT3_CODE" AND "T1"."MGR_CODE"="A"."MGR_CODE")
   8 - access("T1"."BRAN_CODE"="T4"."BRAN_CODE")
  11 - access("T5"."CUR_CODE"=TO_NUMBER("T1"."CUR_CODE"))
  19 - access(NVL("A"."TERM",0)=NVL("T2"."TERM",0) AND NVL("A"."FLAG",'X')=NVL("T2"."FLAG",'X') AND NVL("A"."SUB_CODE",'XXXXX')=NVL("T2"."SUB_CODE",'XXXXX') AND 
              NVL("A"."UNIT2_CODE",'XXXXX')=NVL("T2"."UNIT2_CODE",'XXXXX') AND NVL("A"."MGR_CODE",'XXXXX')=NVL("T2"."MGR_CODE",'XXXXX') AND "A"."ACCT_NO_PK"="T2"."ACCT_NO_PK")
  23 - access(:Z>=:Z AND :Z<=:Z)
       filter(("FLAG" IS NOT NULL AND "DEPT1_CODE" IS NOT NULL AND INTERNAL_FUNCTION("ACCT_FLAG") AND TO_NUMBER("CUR_CODE")<>0 AND LENGTH(TRIM("MGR_CODE"))>=3))
  28 - access(:Z>=:Z AND :Z<=:Z)
       filter(("FLAG" IS NOT NULL AND "DEPT1_CODE" IS NOT NULL AND INTERNAL_FUNCTION("ACCT_FLAG") AND TO_NUMBER("CUR_CODE")<>0 AND LENGTH(TRIM("MGR_CODE"))>=3))
  29 - access("A"."ACCT_NO_PK"="A"."ACCT_NO_PK" AND NVL("A"."MGR_CODE",'XXXXX')=NVL("A"."MGR_CODE",'XXXXX') AND 
              NVL("A"."UNIT2_CODE",'XXXXX')=NVL("A"."UNIT2_CODE",'XXXXX') AND NVL("A"."SUB_CODE",'XXXXX')=NVL("A"."SUB_CODE",'XXXXX') AND NVL("A"."FLAG",'X')=NVL("A"."FLAG",'X') 
              AND NVL("A"."TERM",0)=NVL("A"."TERM",0))
  33 - access(:Z>=:Z AND :Z<=:Z)
       filter(("FLAG" IS NOT NULL AND "DEPT1_CODE" IS NOT NULL AND INTERNAL_FUNCTION("ACCT_FLAG") AND TO_NUMBER("CUR_CODE")<>0 AND LENGTH(TRIM("MGR_CODE"))>=3))
  37 - access(:Z>=:Z AND :Z<=:Z)
       filter(("FLAG" IS NOT NULL AND "DEPT1_CODE" IS NOT NULL AND INTERNAL_FUNCTION("ACCT_FLAG") AND TO_NUMBER("CUR_CODE")<>0 AND LENGTH(TRIM("MGR_CODE"))>=3))
  40 - access(NVL("A"."FLAG",'X')=NVL("T2"."FLAG",'X') AND NVL("A"."UNIT4_CODE",'XXXXX')=NVL("T2"."UNIT4_CODE",'XXXXX') AND 
              NVL("A"."UNIT3_CODE",'XXXXX')=NVL("T2"."UNIT3_CODE",'XXXXX') AND NVL("A"."MGR_CODE",'XXXXX')=NVL("T2"."MGR_CODE",'XXXXX') AND 
              NVL("A"."ACCT_NO_PK",'XXXXX')=NVL("T2"."ACCT_NO_PK",'XXXXX'))
  44 - access(:Z>=:Z AND :Z<=:Z)
       filter(("FLAG" IS NOT NULL AND "DEPT1_CODE" IS NOT NULL AND INTERNAL_FUNCTION("ACCT_FLAG") AND "FLAG"<>'625' AND TO_NUMBER("CUR_CODE")<>0 AND 
              LENGTH(TRIM("MGR_CODE"))>=3))
  49 - access(:Z>=:Z AND :Z<=:Z)
       filter(("FLAG" IS NOT NULL AND "DEPT1_CODE" IS NOT NULL AND INTERNAL_FUNCTION("ACCT_FLAG") AND "FLAG"<>'625' AND TO_NUMBER("CUR_CODE")<>0 AND 
              LENGTH(TRIM("MGR_CODE"))>=3))
  50 - access(NVL("A"."ACCT_NO_PK",'XXXXX')=NVL("A"."ACCT_NO_PK",'XXXXX') AND NVL("A"."MGR_CODE",'XXXXX')=NVL("A"."MGR_CODE",'XXXXX') AND 
              NVL("A"."UNIT3_CODE",'XXXXX')=NVL("A"."UNIT3_CODE",'XXXXX') AND NVL("A"."UNIT4_CODE",'XXXXX')=NVL("A"."UNIT4_CODE",'XXXXX') AND 
              NVL("A"."FLAG",'X')=NVL("A"."FLAG",'X'))
  54 - access(:Z>=:Z AND :Z<=:Z)
       filter(("FLAG" IS NOT NULL AND "DEPT1_CODE" IS NOT NULL AND INTERNAL_FUNCTION("ACCT_FLAG") AND "FLAG"<>'625' AND TO_NUMBER("CUR_CODE")<>0 AND 
              LENGTH(TRIM("MGR_CODE"))>=3))
  58 - access(:Z>=:Z AND :Z<=:Z)
       filter(("FLAG" IS NOT NULL AND "DEPT1_CODE" IS NOT NULL AND INTERNAL_FUNCTION("ACCT_FLAG") AND "FLAG"<>'625' AND TO_NUMBER("CUR_CODE")<>0 AND 
              LENGTH(TRIM("MGR_CODE"))>=3))
  64 - access(NVL("A"."FLAG",'X')=NVL("A"."FLAG",'X') AND NVL("A"."UNIT4_CODE",'XXXXX')=NVL("A"."UNIT4_CODE",'XXXXX') AND 
              NVL("A"."UNIT3_CODE",'XXXXX')=NVL("A"."UNIT3_CODE",'XXXXX') AND NVL("A"."MGR_CODE",'XXXXX')=NVL("A"."MGR_CODE",'XXXXX') AND 
              NVL("A"."ACCT_NO_PK",'XXXXX')=NVL("A"."ACCT_NO_PK",'XXXXX'))
  66 - filter(("DEPT1_CODE" IS NOT NULL AND "FLAG" IS NOT NULL AND "ACCT_FLAG"='PFS' AND "FLAG"='625' AND TO_NUMBER("CUR_CODE")<>0 AND LENGTH(TRIM("MGR_CODE"))>=3))
  67 - access("A"."SYS_NC00043$"='6')
  69 - filter(("DEPT1_CODE" IS NOT NULL AND "FLAG" IS NOT NULL AND "ACCT_FLAG"='PFS' AND "FLAG"='625' AND TO_NUMBER("CUR_CODE")<>0 AND LENGTH(TRIM("MGR_CODE"))>=3))
  70 - access("A"."SYS_NC00043$"='6')
  73 - filter(("DEPT1_CODE" IS NOT NULL AND "FLAG" IS NOT NULL AND "ACCT_FLAG"='PFS' AND "FLAG"='625' AND TO_NUMBER("CUR_CODE")<>0 AND LENGTH(TRIM("MGR_CODE"))>=3))
  74 - access("A"."SYS_NC00043$"='6')
  76 - filter(("DEPT1_CODE" IS NOT NULL AND "FLAG" IS NOT NULL AND "ACCT_FLAG"='PFS' AND "FLAG"='625' AND TO_NUMBER("CUR_CODE")<>0 AND LENGTH(TRIM("MGR_CODE"))>=3 AND 
              NVL("A"."ACCT_NO_PK",'XXXXX')=NVL("A"."ACCT_NO_PK",'XXXXX') AND NVL("A"."MGR_CODE",'XXXXX')=NVL("A"."MGR_CODE",'XXXXX') AND 
              NVL("A"."UNIT3_CODE",'XXXXX')=NVL("A"."UNIT3_CODE",'XXXXX') AND NVL("A"."UNIT4_CODE",'XXXXX')=NVL("A"."UNIT4_CODE",'XXXXX') AND 
              NVL("A"."FLAG",'X')=NVL("A"."FLAG",'X')))
  77 - access("A"."SYS_NC00043$"='6')
  87 - access("T1"."BANK_CORP_CODE"="T3"."BANK_CORP_CODE" AND "T1"."CUST_NO"="T3"."CUST_NO")
  91 - access(:Z>=:Z AND :Z<=:Z)
       filter("DEPT1_CODE"<>'999999999')
 
Note
-----
   - dynamic sampling used for this statement (level=2)
 

由于统计信息错误,导致没有小表广播,搜集统计信息后:
 
Plan hash value: 919621692


 
--------------------------------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                            | Name               | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |    TQ  |IN-OUT| PQ Distrib |
--------------------------------------------------------------------------------------------------------------------------------------------------------
|   0 | INSERT STATEMENT                     |                    |       |       | 26709 (100)|          |       |       |        |      |            |
|   1 |  LOAD AS SELECT                      |                    |       |       |            |          |       |       |        |      |            |
|   2 |   PX COORDINATOR                     |                    |       |       |            |          |       |       |        |      |            |
|   3 |    PX SEND QC (RANDOM)               | :TQ10017           |   263K|   186M| 26709   (1)| 00:05:21 |       |       |  Q1,17 | P->S | QC (RAND)  |
|*  4 |     HASH JOIN RIGHT OUTER BUFFERED   |                    |   263K|   186M| 26709   (1)| 00:05:21 |       |       |  Q1,17 | PCWP |            |
|   5 |      BUFFER SORT                     |                    |       |       |            |          |       |       |  Q1,17 | PCWC |            |
|   6 |       PX RECEIVE                     |                    |   525K|    17M|  2973   (1)| 00:00:36 |       |       |  Q1,17 | PCWP |            |
|   7 |        PX SEND HASH                  | :TQ10002           |   525K|    17M|  2973   (1)| 00:00:36 |       |       |        | S->P | HASH       |
|   8 |         TABLE ACCESS FULL            | S_PM_CUSTOMER      |   525K|    17M|  2973   (1)| 00:00:36 |       |       |        |      |            |
|   9 |      PX RECEIVE                      |                    |   263K|   177M| 23735   (1)| 00:04:45 |       |       |  Q1,17 | PCWP |            |
|  10 |       PX SEND HASH                   | :TQ10016           |   263K|   177M| 23735   (1)| 00:04:45 |       |       |  Q1,16 | P->P | HASH       |
|* 11 |        HASH JOIN RIGHT OUTER BUFFERED|                    |   263K|   177M| 23735   (1)| 00:04:45 |       |       |  Q1,16 | PCWP |            |
|  12 |         PX RECEIVE                   |                    |  6082 |   231K|     4   (0)| 00:00:01 |       |       |  Q1,16 | PCWP |            |
|  13 |          PX SEND BROADCAST           | :TQ10003           |  6082 |   231K|     4   (0)| 00:00:01 |       |       |  Q1,03 | P->P | BROADCAST  |
|  14 |           PX BLOCK ITERATOR          |                    |  6082 |   231K|     4   (0)| 00:00:01 |       |       |  Q1,03 | PCWC |            |
|* 15 |            TABLE ACCESS FULL         | S_PM_MGR_DEPT_RELA |  6082 |   231K|     4   (0)| 00:00:01 |       |       |  Q1,03 | PCWP |            |
|* 16 |         HASH JOIN RIGHT OUTER        |                    |   263K|   167M| 23731   (1)| 00:04:45 |       |       |  Q1,16 | PCWP |            |
|  17 |          BUFFER SORT                 |                    |       |       |            |          |       |       |  Q1,16 | PCWC |            |
|  18 |           PX RECEIVE                 |                    |    98 |  1862 |     3   (0)| 00:00:01 |       |       |  Q1,16 | PCWP |            |
|  19 |            PX SEND BROADCAST         | :TQ10000           |    98 |  1862 |     3   (0)| 00:00:01 |       |       |        | S->P | BROADCAST  |
|  20 |             TABLE ACCESS FULL        | S_PM_BRANCH        |    98 |  1862 |     3   (0)| 00:00:01 |       |       |        |      |            |
|* 21 |          HASH JOIN RIGHT OUTER       |                    |   263K|   162M| 23727   (1)| 00:04:45 |       |       |  Q1,16 | PCWP |            |
|  22 |           BUFFER SORT                |                    |       |       |            |          |       |       |  Q1,16 | PCWC |            |
|  23 |            PX RECEIVE                |                    |    18 |   234 |     3   (0)| 00:00:01 |       |       |  Q1,16 | PCWP |            |
|  24 |             PX SEND BROADCAST        | :TQ10001           |    18 |   234 |     3   (0)| 00:00:01 |       |       |        | S->P | BROADCAST  |
|  25 |              TABLE ACCESS FULL       | S_PM_CURRENCY      |    18 |   234 |     3   (0)| 00:00:01 |       |       |        |      |            |
|  26 |           VIEW                       |                    |   263K|   159M| 23723   (1)| 00:04:45 |       |       |  Q1,16 | PCWP |            |
|  27 |            UNION-ALL                 |                    |       |       |            |          |       |       |  Q1,16 | PCWP |            |
|  28 |             VIEW                     |                    |   204K|   231M|  7914   (1)| 00:01:35 |       |       |  Q1,16 | PCWP |            |
|  29 |              UNION-ALL               |                    |       |       |            |          |       |       |  Q1,16 | PCWP |            |
|* 30 |               HASH JOIN OUTER        |                    |   112K|    79M|  3957   (1)| 00:00:48 |       |       |  Q1,16 | PCWP |            |
|  31 |                PX RECEIVE            |                    |   112K|    22M|  1979   (1)| 00:00:24 |       |       |  Q1,16 | PCWP |            |
|  32 |                 PX SEND HASH         | :TQ10004           |   112K|    22M|  1979   (1)| 00:00:24 |       |       |  Q1,04 | P->P | HASH       |
|  33 |                  PX BLOCK ITERATOR   |                    |   112K|    22M|  1979   (1)| 00:00:24 |   KEY |   KEY |  Q1,04 | PCWC |            |
|* 34 |                   TABLE ACCESS FULL  | T_PM_ACCT_DTL_AF   |   112K|    22M|  1979   (1)| 00:00:24 |   KEY |   KEY |  Q1,04 | PCWP |            |
|  35 |                PX RECEIVE            |                    |   114K|    57M|  1978   (1)| 00:00:24 |       |       |  Q1,16 | PCWP |            |
|  36 |                 PX SEND HASH         | :TQ10005           |   114K|    57M|  1978   (1)| 00:00:24 |       |       |  Q1,05 | P->P | HASH       |
|  37 |                  PX BLOCK ITERATOR   |                    |   114K|    57M|  1978   (1)| 00:00:24 |   KEY |   KEY |  Q1,05 | PCWC |            |
|  38 |                   VIEW               |                    |   114K|    57M|  1978   (1)| 00:00:24 |       |       |  Q1,05 | PCWP |            |
|* 39 |                    TABLE ACCESS FULL | T_PM_ACCT_DTL_AF   |   114K|    23M|  1978   (1)| 00:00:24 |   KEY |   KEY |  Q1,05 | PCWP |            |
|* 40 |               HASH JOIN RIGHT ANTI   |                    | 92022 |    25M|  3957   (1)| 00:00:48 |       |       |  Q1,16 | PCWP |            |
|  41 |                PX RECEIVE            |                    |   112K|  8143K|  1979   (1)| 00:00:24 |       |       |  Q1,16 | PCWP |            |
|  42 |                 PX SEND HASH         | :TQ10006           |   112K|  8143K|  1979   (1)| 00:00:24 |       |       |  Q1,06 | P->P | HASH       |
|  43 |                  PX BLOCK ITERATOR   |                    |   112K|  8143K|  1979   (1)| 00:00:24 |   KEY |   KEY |  Q1,06 | PCWC |            |
|* 44 |                   TABLE ACCESS FULL  | T_PM_ACCT_DTL_AF   |   112K|  8143K|  1979   (1)| 00:00:24 |   KEY |   KEY |  Q1,06 | PCWP |            |
|  45 |                PX RECEIVE            |                    |   114K|    23M|  1978   (1)| 00:00:24 |       |       |  Q1,16 | PCWP |            |
|  46 |                 PX SEND HASH         | :TQ10007           |   114K|    23M|  1978   (1)| 00:00:24 |       |       |  Q1,07 | P->P | HASH       |
|  47 |                  PX BLOCK ITERATOR   |                    |   114K|    23M|  1978   (1)| 00:00:24 |   KEY |   KEY |  Q1,07 | PCWC |            |
|* 48 |                   TABLE ACCESS FULL  | T_PM_ACCT_DTL_AF   |   114K|    23M|  1978   (1)| 00:00:24 |   KEY |   KEY |  Q1,07 | PCWP |            |
|  49 |             VIEW                     |                    | 58192 |    65M|  7910   (1)| 00:01:35 |       |       |  Q1,16 | PCWP |            |
|  50 |              UNION-ALL               |                    |       |       |            |          |       |       |  Q1,16 | PCWP |            |
|* 51 |               HASH JOIN OUTER        |                    | 55688 |    39M|  3955   (1)| 00:00:48 |       |       |  Q1,16 | PCWP |            |
|  52 |                PX RECEIVE            |                    | 55688 |    11M|  1978   (1)| 00:00:24 |       |       |  Q1,16 | PCWP |            |
|  53 |                 PX SEND HASH         | :TQ10008           | 55688 |    11M|  1978   (1)| 00:00:24 |       |       |  Q1,08 | P->P | HASH       |
|  54 |                  PX BLOCK ITERATOR   |                    | 55688 |    11M|  1978   (1)| 00:00:24 |   KEY |   KEY |  Q1,08 | PCWC |            |
|* 55 |                   TABLE ACCESS FULL  | T_PM_ACCT_DTL_AF   | 55688 |    11M|  1978   (1)| 00:00:24 |   KEY |   KEY |  Q1,08 | PCWP |            |
|  56 |                PX RECEIVE            |                    | 53498 |    26M|  1976   (1)| 00:00:24 |       |       |  Q1,16 | PCWP |            |
|  57 |                 PX SEND HASH         | :TQ10009           | 53498 |    26M|  1976   (1)| 00:00:24 |       |       |  Q1,09 | P->P | HASH       |
|  58 |                  PX BLOCK ITERATOR   |                    | 53498 |    26M|  1976   (1)| 00:00:24 |   KEY |   KEY |  Q1,09 | PCWC |            |
|  59 |                   VIEW               |                    | 53498 |    26M|  1976   (1)| 00:00:24 |       |       |  Q1,09 | PCWP |            |
|* 60 |                    TABLE ACCESS FULL | T_PM_ACCT_DTL_AF   | 53498 |    10M|  1976   (1)| 00:00:24 |   KEY |   KEY |  Q1,09 | PCWP |            |
|* 61 |               HASH JOIN RIGHT ANTI   |                    |  2504 |   709K|  3955   (1)| 00:00:48 |       |       |  Q1,16 | PCWP |            |
|  62 |                PX RECEIVE            |                    | 55688 |  4133K|  1978   (1)| 00:00:24 |       |       |  Q1,16 | PCWP |            |
|  63 |                 PX SEND HASH         | :TQ10010           | 55688 |  4133K|  1978   (1)| 00:00:24 |       |       |  Q1,10 | P->P | HASH       |
|  64 |                  PX BLOCK ITERATOR   |                    | 55688 |  4133K|  1978   (1)| 00:00:24 |   KEY |   KEY |  Q1,10 | PCWC |            |
|* 65 |                   TABLE ACCESS FULL  | T_PM_ACCT_DTL_AF   | 55688 |  4133K|  1978   (1)| 00:00:24 |   KEY |   KEY |  Q1,10 | PCWP |            |
|  66 |                PX RECEIVE            |                    | 53498 |    10M|  1976   (1)| 00:00:24 |       |       |  Q1,16 | PCWP |            |
|  67 |                 PX SEND HASH         | :TQ10011           | 53498 |    10M|  1976   (1)| 00:00:24 |       |       |  Q1,11 | P->P | HASH       |
|  68 |                  PX BLOCK ITERATOR   |                    | 53498 |    10M|  1976   (1)| 00:00:24 |   KEY |   KEY |  Q1,11 | PCWC |            |
|* 69 |                   TABLE ACCESS FULL  | T_PM_ACCT_DTL_AF   | 53498 |    10M|  1976   (1)| 00:00:24 |   KEY |   KEY |  Q1,11 | PCWP |            |
|  70 |             VIEW                     |                    |   138 |   159K|  7900   (1)| 00:01:35 |       |       |  Q1,16 | PCWP |            |
|  71 |              UNION-ALL               |                    |       |       |            |          |       |       |  Q1,16 | PCWP |            |
|* 72 |               HASH JOIN OUTER        |                    |   132 | 56496 |  3950   (1)| 00:00:48 |       |       |  Q1,16 | PCWP |            |
|  73 |                PX RECEIVE            |                    |   132 | 28248 |  1975   (1)| 00:00:24 |       |       |  Q1,16 | PCWP |            |
|  74 |                 PX SEND HASH         | :TQ10012           |   132 | 28248 |  1975   (1)| 00:00:24 |       |       |  Q1,12 | P->P | HASH       |
|  75 |                  PX BLOCK ITERATOR   |                    |   132 | 28248 |  1975   (1)| 00:00:24 |   KEY |   KEY |  Q1,12 | PCWC |            |
|* 76 |                   TABLE ACCESS FULL  | T_PM_ACCT_DTL_AF   |   132 | 28248 |  1975   (1)| 00:00:24 |   KEY |   KEY |  Q1,12 | PCWP |            |
|  77 |                PX RECEIVE            |                    |   124 | 26536 |  1974   (1)| 00:00:24 |       |       |  Q1,16 | PCWP |            |
|  78 |                 PX SEND HASH         | :TQ10013           |   124 | 26536 |  1974   (1)| 00:00:24 |       |       |  Q1,13 | P->P | HASH       |
|  79 |                  PX BLOCK ITERATOR   |                    |   124 | 26536 |  1974   (1)| 00:00:24 |   KEY |   KEY |  Q1,13 | PCWC |            |
|* 80 |                   TABLE ACCESS FULL  | T_PM_ACCT_DTL_AF   |   124 | 26536 |  1974   (1)| 00:00:24 |   KEY |   KEY |  Q1,13 | PCWP |            |
|* 81 |               HASH JOIN ANTI         |                    |     6 |  1740 |  3950   (1)| 00:00:48 |       |       |  Q1,16 | PCWP |            |
|  82 |                PX RECEIVE            |                    |   124 | 26536 |  1974   (1)| 00:00:24 |       |       |  Q1,16 | PCWP |            |
|  83 |                 PX SEND HASH         | :TQ10014           |   124 | 26536 |  1974   (1)| 00:00:24 |       |       |  Q1,14 | P->P | HASH       |
|  84 |                  PX BLOCK ITERATOR   |                    |   124 | 26536 |  1974   (1)| 00:00:24 |   KEY |   KEY |  Q1,14 | PCWC |            |
|* 85 |                   TABLE ACCESS FULL  | T_PM_ACCT_DTL_AF   |   124 | 26536 |  1974   (1)| 00:00:24 |   KEY |   KEY |  Q1,14 | PCWP |            |
|  86 |                PX RECEIVE            |                    |   132 | 10032 |  1975   (1)| 00:00:24 |       |       |  Q1,16 | PCWP |            |
|  87 |                 PX SEND HASH         | :TQ10015           |   132 | 10032 |  1975   (1)| 00:00:24 |       |       |  Q1,15 | P->P | HASH       |
|  88 |                  PX BLOCK ITERATOR   |                    |   132 | 10032 |  1975   (1)| 00:00:24 |   KEY |   KEY |  Q1,15 | PCWC |            |
|* 89 |                   TABLE ACCESS FULL  | T_PM_ACCT_DTL_AF   |   132 | 10032 |  1975   (1)| 00:00:24 |   KEY |   KEY |  Q1,15 | PCWP |            |
--------------------------------------------------------------------------------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   4 - access("T1"."BANK_CORP_CODE"="T3"."BANK_CORP_CODE" AND "T1"."CUST_NO"="T3"."CUST_NO")
  11 - access("T1"."UNIT4_CODE"="A"."UNIT4_CODE" AND "T1"."UNIT3_CODE"="A"."UNIT3_CODE" AND "T1"."MGR_CODE"="A"."MGR_CODE")
  15 - access(:Z>=:Z AND :Z<=:Z)
       filter("DEPT1_CODE"<>'999999999')
  16 - access("T1"."BRAN_CODE"="T4"."BRAN_CODE")
  21 - access("T5"."CUR_CODE"=TO_NUMBER("T1"."CUR_CODE"))
  30 - access(NVL("A"."TERM",0)=NVL("T2"."TERM",0) AND NVL("A"."FLAG",'X')=NVL("T2"."FLAG",'X') AND 
              NVL("A"."SUB_CODE",'XXXXX')=NVL("T2"."SUB_CODE",'XXXXX') AND NVL("A"."UNIT2_CODE",'XXXXX')=NVL("T2"."UNIT2_CODE",'XXXXX') AND 
              NVL("A"."MGR_CODE",'XXXXX')=NVL("T2"."MGR_CODE",'XXXXX') AND "A"."ACCT_NO_PK"="T2"."ACCT_NO_PK")
  34 - access(:Z>=:Z AND :Z<=:Z)
       filter((LENGTH(TRIM("MGR_CODE"))>=3 AND INTERNAL_FUNCTION("ACCT_FLAG") AND TO_NUMBER("CUR_CODE")<>0 AND "FLAG" IS NOT NULL AND 
              "DEPT1_CODE" IS NOT NULL))
  39 - access(:Z>=:Z AND :Z<=:Z)
       filter((LENGTH(TRIM("MGR_CODE"))>=3 AND INTERNAL_FUNCTION("ACCT_FLAG") AND TO_NUMBER("CUR_CODE")<>0 AND "FLAG" IS NOT NULL AND 
              "DEPT1_CODE" IS NOT NULL))
  40 - access("A"."ACCT_NO_PK"="A"."ACCT_NO_PK" AND NVL("A"."MGR_CODE",'XXXXX')=NVL("A"."MGR_CODE",'XXXXX') AND 
              NVL("A"."UNIT2_CODE",'XXXXX')=NVL("A"."UNIT2_CODE",'XXXXX') AND NVL("A"."SUB_CODE",'XXXXX')=NVL("A"."SUB_CODE",'XXXXX') AND 
              NVL("A"."FLAG",'X')=NVL("A"."FLAG",'X') AND NVL("A"."TERM",0)=NVL("A"."TERM",0))
  44 - access(:Z>=:Z AND :Z<=:Z)
       filter((LENGTH(TRIM("MGR_CODE"))>=3 AND INTERNAL_FUNCTION("ACCT_FLAG") AND TO_NUMBER("CUR_CODE")<>0 AND "FLAG" IS NOT NULL AND 
              "DEPT1_CODE" IS NOT NULL))
  48 - access(:Z>=:Z AND :Z<=:Z)
       filter((LENGTH(TRIM("MGR_CODE"))>=3 AND INTERNAL_FUNCTION("ACCT_FLAG") AND TO_NUMBER("CUR_CODE")<>0 AND "FLAG" IS NOT NULL AND 
              "DEPT1_CODE" IS NOT NULL))
  51 - access(NVL("A"."FLAG",'X')=NVL("T2"."FLAG",'X') AND NVL("A"."UNIT4_CODE",'XXXXX')=NVL("T2"."UNIT4_CODE",'XXXXX') AND 
              NVL("A"."UNIT3_CODE",'XXXXX')=NVL("T2"."UNIT3_CODE",'XXXXX') AND NVL("A"."MGR_CODE",'XXXXX')=NVL("T2"."MGR_CODE",'XXXXX') AND 
              NVL("A"."ACCT_NO_PK",'XXXXX')=NVL("T2"."ACCT_NO_PK",'XXXXX'))
  55 - access(:Z>=:Z AND :Z<=:Z)
       filter((INTERNAL_FUNCTION("ACCT_FLAG") AND LENGTH(TRIM("MGR_CODE"))>=3 AND "FLAG"<>'625' AND TO_NUMBER("CUR_CODE")<>0 AND "FLAG" IS NOT 
              NULL AND "DEPT1_CODE" IS NOT NULL))
  60 - access(:Z>=:Z AND :Z<=:Z)
       filter((INTERNAL_FUNCTION("ACCT_FLAG") AND LENGTH(TRIM("MGR_CODE"))>=3 AND "FLAG"<>'625' AND TO_NUMBER("CUR_CODE")<>0 AND "FLAG" IS NOT 
              NULL AND "DEPT1_CODE" IS NOT NULL))
  61 - access(NVL("A"."ACCT_NO_PK",'XXXXX')=NVL("A"."ACCT_NO_PK",'XXXXX') AND NVL("A"."MGR_CODE",'XXXXX')=NVL("A"."MGR_CODE",'XXXXX') AND 
              NVL("A"."UNIT3_CODE",'XXXXX')=NVL("A"."UNIT3_CODE",'XXXXX') AND NVL("A"."UNIT4_CODE",'XXXXX')=NVL("A"."UNIT4_CODE",'XXXXX') AND 
              NVL("A"."FLAG",'X')=NVL("A"."FLAG",'X'))
  65 - access(:Z>=:Z AND :Z<=:Z)
       filter((INTERNAL_FUNCTION("ACCT_FLAG") AND LENGTH(TRIM("MGR_CODE"))>=3 AND "FLAG"<>'625' AND TO_NUMBER("CUR_CODE")<>0 AND "FLAG" IS NOT 
              NULL AND "DEPT1_CODE" IS NOT NULL))
  69 - access(:Z>=:Z AND :Z<=:Z)
       filter((INTERNAL_FUNCTION("ACCT_FLAG") AND LENGTH(TRIM("MGR_CODE"))>=3 AND "FLAG"<>'625' AND TO_NUMBER("CUR_CODE")<>0 AND "FLAG" IS NOT 
              NULL AND "DEPT1_CODE" IS NOT NULL))
  72 - access(NVL("A"."FLAG",'X')=NVL("A"."FLAG",'X') AND NVL("A"."UNIT4_CODE",'XXXXX')=NVL("A"."UNIT4_CODE",'XXXXX') AND 
              NVL("A"."UNIT3_CODE",'XXXXX')=NVL("A"."UNIT3_CODE",'XXXXX') AND NVL("A"."MGR_CODE",'XXXXX')=NVL("A"."MGR_CODE",'XXXXX') AND 
              NVL("A"."ACCT_NO_PK",'XXXXX')=NVL("A"."ACCT_NO_PK",'XXXXX'))
  76 - access(:Z>=:Z AND :Z<=:Z)
       filter(("FLAG"='625' AND "ACCT_FLAG"='PFS' AND LENGTH(TRIM("MGR_CODE"))>=3 AND TO_NUMBER("CUR_CODE")<>0 AND "DEPT1_CODE" IS NOT NULL AND 
              "FLAG" IS NOT NULL))
  80 - access(:Z>=:Z AND :Z<=:Z)
       filter(("FLAG"='625' AND "ACCT_FLAG"='PFS' AND LENGTH(TRIM("MGR_CODE"))>=3 AND TO_NUMBER("CUR_CODE")<>0 AND "DEPT1_CODE" IS NOT NULL AND 
              "FLAG" IS NOT NULL))
  81 - access(NVL("A"."ACCT_NO_PK",'XXXXX')=NVL("A"."ACCT_NO_PK",'XXXXX') AND NVL("A"."MGR_CODE",'XXXXX')=NVL("A"."MGR_CODE",'XXXXX') AND 
              NVL("A"."UNIT3_CODE",'XXXXX')=NVL("A"."UNIT3_CODE",'XXXXX') AND NVL("A"."UNIT4_CODE",'XXXXX')=NVL("A"."UNIT4_CODE",'XXXXX') AND 
              NVL("A"."FLAG",'X')=NVL("A"."FLAG",'X'))
  85 - access(:Z>=:Z AND :Z<=:Z)
       filter(("FLAG"='625' AND "ACCT_FLAG"='PFS' AND LENGTH(TRIM("MGR_CODE"))>=3 AND TO_NUMBER("CUR_CODE")<>0 AND "DEPT1_CODE" IS NOT NULL AND 
              "FLAG" IS NOT NULL))
  89 - access(:Z>=:Z AND :Z<=:Z)
       filter(("FLAG"='625' AND "ACCT_FLAG"='PFS' AND LENGTH(TRIM("MGR_CODE"))>=3 AND TO_NUMBER("CUR_CODE")<>0 AND "DEPT1_CODE" IS NOT NULL AND 
              "FLAG" IS NOT NULL))

 

在超大表与超级小表进行HASH JOIN情况下,如果走并行,那么小表需要BROADCAST
 

你可能感兴趣的:(并行HASH JOIN小表广播问题)