You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When 3 or more tables are joined, it is not uncommon for 3 or more columns to be equivalent. For example:
SELECT * FROM a, b, c WHERE a.x=b.y AND b.y=c.z
The optimizer will consider these join orders:
1. (a join b) join c
2. a join (b join c)
But it will not consider (a join c) join b, because there is no explicit join condition between a and c. This could cause it to miss the best plan (in fact, it does miss the best plan for TPC-H Q9 for this reason).
The optimizer knows that columns (x, y, z) are all equivalent to one another. It can synthesize any missing equality conditions during the AssociateJoin rule, thus opening up new ordering possibilities.
For TPC-H Q9, adding the missing equality condition reduces execution time from ~120s to ~20s.
The text was updated successfully, but these errors were encountered:
When 3 or more tables are joined, it is not uncommon for 3 or more columns to be equivalent. For example:
The optimizer will consider these join orders:
But it will not consider
(a join c) join b
, because there is no explicit join condition betweena
andc
. This could cause it to miss the best plan (in fact, it does miss the best plan for TPC-H Q9 for this reason).The optimizer knows that columns (x, y, z) are all equivalent to one another. It can synthesize any missing equality conditions during the
AssociateJoin
rule, thus opening up new ordering possibilities.For TPC-H Q9, adding the missing equality condition reduces execution time from ~120s to ~20s.
The text was updated successfully, but these errors were encountered: