zoukankan      html  css  js  c++  java
  • 并行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
     

  • 相关阅读:
    Stanford coursera Andrew Ng 机器学习课程编程作业(Exercise 2)及总结
    zookeeper Eclipse 开发环境搭建及简单示例
    PHP语言基础之MySql 05 By ACReaper
    【读书笔记】并发编程需要注意的几个典型问题
    Eclipse安装SVN
    html学习
    某浪PHP面试题及答案优化
    《卡特教练》观后感
    [Usaco2006 Nov]Roadblocks第二短路
    std::vector 两种操作的比较
  • 原文地址:https://www.cnblogs.com/zhaoyangjian724/p/3797957.html
Copyright © 2011-2022 走看看