RE: how to tell if you are getting a partition wise join

  • From: "Christian Antognini" <Christian.Antognini@xxxxxxxxxxxx>
  • To: <ryan_gaffuri@xxxxxxxxxxx>
  • Date: Thu, 20 Jul 2006 00:06:38 +0200

Ryan

>My expectation before running this query was:
>1. Each slave will scan a partition
>2. Then eight slaves will each do a partition wise hash join.
>3. The results will queued. The query coordinator will dequeue the results.
>
>Is this a correct interpretation? 

Yes.

>I am not sure if the plan says that.
>
>This is the second plan:
>   explain plan for
>       select /*+ parallel (a,8) parallel (b,8) */ count(*)
>       from hash_test_a partition(HASH_TEST_A01) a, hash_test_c 
> partition(HASH_TEST_A01) b
>      where a.object_id = b.object_id

A join is executed using a full partition-wise join if the partition row source 
appears before the join row source. According to your attachment this is your 
case. If you use, for example, 6 slaves, you should see a different execution 
plan.

>I read the partition docs and it does not give examples of partition wise join 
>explain plans.

AFAIK the Data Warehousing Guide describes partition wise joins quite well.


HTH
Chris

--
//www.freelists.org/webpage/oracle-l


Other related posts: