Re: parallel query and direct path read

From: Ls Cheng <exriscer_at_gmail.com>
Date: Tue, 2 Jul 2013 10:02:31 +0200
Message-ID: <CAJ2-Qb81zM022MXeObV5ctdCA7uRUyZskiwfaE5GMkQs8JVjUg_at_mail.gmail.com>



Hi
The plans are as following:

NO DIRECT PATH READS (or very little):

select /*+ parallel(t 8) parallel(h 8) */

        t.*, h.id_hora
  from STG_VALHOR_AGRE t,

        DM_HORA h

 where  t.fx_period = h.ds_hour_end
   and  t.nu_period_intgr  = h.id_period_day
   and  t.fx_period >= to_date('20110101 000000', 'yyyymmdd hh24miss')
   and  t.fx_period <  to_date('20120101 000000', 'yyyymmdd hh24miss')

Plan hash value: 3992848562



| Id | Operation | Name | Rows | Bytes | Cost
(%CPU)| Time | Pstart| Pstop | TQ |IN-OUT| PQ Distrib |

| 0 | SELECT STATEMENT | | | | 58577
(100)|          |       |       |        |      |            |

| 1 | PX COORDINATOR | | |
| | | | | | | |
| 2 | PX SEND QC (RANDOM) | :TQ10001 | 11M| 801M|
58577 (2)| 00:11:43 | | | Q1,01 | P->S | QC (RAND) | |* 3 | HASH JOIN | | 11M| 801M| 58577 (2)| 00:11:43 | | | Q1,01 | PCWP | |
| 4 | PART JOIN FILTER CREATE| :BF0000 | 8761 | 162K|
53 (2)| 00:00:01 | | | Q1,01 | PCWP | |
| 5 | PX RECEIVE | | 8761 | 162K|
53 (2)| 00:00:01 | | | Q1,01 | PCWP | |
| 6 | PX SEND BROADCAST | :TQ10000 | 8761 | 162K|
53 (2)| 00:00:01 | | | Q1,00 | P->P | BROADCAST |
| 7 | PX BLOCK ITERATOR | | 8761 | 162K|
53 (2)| 00:00:01 | | | Q1,00 | PCWC | | |* 8 | TABLE ACCESS FULL | DM_HORA | 8761 | 162K| 53 (2)| 00:00:01 | | | Q1,00 | PCWP | |
| 9 | PX BLOCK ITERATOR | | 181M| 9540M|
58393 (2)| 00:11:41 |KEY(AP)|KEY(AP)| Q1,01 | PCWC | | |* 10 | TABLE ACCESS FULL | STG_VALHOR_AGRE| 181M| 9540M| 58393 (2)| 00:11:41 |KEY(AP)|KEY(AP)| Q1,01 | PCWP | | ------------------------------------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):


   3 - access("T"."FX_PERIOD"="H"."ds_hour_end" AND "T"."NU_PERIOD_INTGR"="H"."id_period_day")

   8 - access(:Z>=:Z AND :Z<=:Z)

       filter(("H"."DS_HOUR_END">=TO_DATE(' 2011-01-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND "H"."DS_HOUR_END"<TO_DATE('

              2012-01-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss')))   10 - access(:Z>=:Z AND :Z<=:Z)

       filter(("T"."FX_PERIOD"<TO_DATE(' 2012-01-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND "T"."FX_PERIOD">=TO_DATE('

              2011-01-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND SYS_OP_BLOOM_FILTER(:BF0000,"T"."FX_PERIOD","T"."NU_PERIOD_INTGR"))) FAST DIRECT PATH READS: select count(*)
  from (select /*+ parallel(t 8) parallel(h 8) */

               t.*, rownum rn
          from  stg_valhor_agre t,
                lu_hora h
         where  t.fx_period = h.ds_hour_end
           and  t.nu_period_intgr  = h.id_period_day
           and  t.fx_period >= to_date('20110101 000000', 'yyyymmdd
hh24miss')
           and  t.fx_period <   to_date('20120101 000000', 'yyyymmdd
hh24miss')
       );

Plan hash value: 360743418



| Id | Operation | Name | Rows | Bytes |
Cost (%CPU)| Time | Pstart| Pstop | TQ |IN-OUT| PQ Distrib |

| 0 | SELECT STATEMENT | | | |
58298 (100)|          |       |       |        |      |            |

| 1 | SORT AGGREGATE | | 1 |
| | | | | | | |
| 2 | VIEW | | 11M| |
58298 (1)| 00:11:40 | | | | | |
| 3 | COUNT | | |
| | | | | | | |
| 4 | PX COORDINATOR | | |
| | | | | | | |
| 5 | PX SEND QC (RANDOM) | :TQ10001 | 11M| 238M|
58298 (1)| 00:11:40 | | | Q1,01 | P->S | QC (RAND) | |* 6 | HASH JOIN | | 11M| 238M| 58298 (1)| 00:11:40 | | | Q1,01 | PCWP | |
| 7 | BUFFER SORT | | |
| | | | | Q1,01 | PCWC | |
| 8 | PART JOIN FILTER CREATE| :BF0000 | 8761 | 96371
| 36 (0)| 00:00:01 | | | Q1,01 | PCWP | |
| 9 | PX RECEIVE | | 8761 | 96371
| 36 (0)| 00:00:01 | | | Q1,01 | PCWP | |
| 10 | PX SEND BROADCAST | :TQ10000 | 8761 | 96371
| 36 (0)| 00:00:01 | | | | S->P | BROADCAST |
|* 11 | INDEX RANGE SCAN | XAK1DM_HOUR | 8761 | 96371
| 36 (0)| 00:00:01 | | | | | |
| 12 | PX BLOCK ITERATOR | | 181M| 1908M|
58130 (1)| 00:11:38 |KEY(AP)|KEY(AP)| Q1,01 | PCWC | | |* 13 | TABLE ACCESS FULL | STG_VALHOR_AGRE| 181M| 1908M| 58130 (1)| 00:11:38 |KEY(AP)|KEY(AP)| Q1,01 | PCWP | | ----------------------------------------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):


   6 - access("T"."FX_PERIOD"="H"."DS_HOUR_END" AND "T"."NU_PERIOD_INTGR"="H"."id_period_day")   11 - ACCESS("H"."DS_HOUR_END">=TO_DATE(' 2011-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS') AND "H"."DS_HOUR_END"<TO_DATE(' 2012-01-01

              00:00:00', 'SYYYY-MM-DD HH24:MI:SS'))   13 - ACCESS(:Z>=:Z AND :Z<=:Z)

       FILTER(("T"."FX_PERIOD"<TO_DATE(' 2012-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS') AND "T"."FX_PERIOD">=TO_DATE(' 2011-01-01               00:00:00', 'SYYYY-MM-DD HH24:MI:SS') AND SYS_OP_BLOOM_FILTER(:BF0000,"T"."FX_PERIOD","T"."NU_PERIOD_INTGR")))

--
http://www.freelists.org/webpage/oracle-l
Received on Tue Jul 02 2013 - 10:02:31 CEST

Original text of this message