并行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)