Using nested joins, the Optimizer generates the following join plan:
Operation | Joined Tables | Total Processing Time |
---|---|---|
Spool 3:nested join | (Hashed table_1, index table_2) | 0.24 seconds |
Spool 1:rowID join | (Hashed spool_3, direct table_2) | 0.22 seconds |
The total estimated completion time is 0.46 seconds.
The estimated performance improvement factor is 9782.
EXPLAIN Output for Optimized Join Plan
The following partial EXPLAIN output is generated:
2) Next, we do an all-AMPs RETRIEVE step from test.tab1 by way of an
all-rows scan with no residual conditions into Spool 2, which is
redistributed by hash code to all AMPs. Then we do a SORT to order
Spool 2 by row hash. The size of Spool 2 is estimated to be 2 rows.
The estimated time for this step is 0.06 seconds.
3) We do a all-AMP JOIN step from Spool 2 (Last Use) by way of an
all-rows scan, which is joined to test.tab2 by way of unique
index #4 "test.tab2.y2 = test.tab1.y1" extracting row ids only.
Spool 2 and test.tab2 are joined using a nested join. The result
goes into Spool 3, which is redistributed by hash code to all AMPs.
Then we do a SORT to order Spool 3 by row hash. The size of Spool 3
is estimated to be 2 rows. The estimated time for this step is 0.18
seconds.
4) We do an all-AMPs JOIN step from Spool 3 (Last Use) by way of an
all-rows scan, which is joined to test.tab2. Spool 3 and test.tab2
are joined using a row id join. The result goes into Spool 1, which
is built locally on the AMPs. The size of Spool 1 is estimated to be
2 rows. The estimated time for this step is 0.22 seconds.