[ http://issues.apache.org/jira/browse/DERBY-754?page=all ]

A B closed DERBY-754.
---------------------


> Push ON clause predicates down when optimizing SELECT queries.
> --------------------------------------------------------------
>
>                 Key: DERBY-754
>                 URL: http://issues.apache.org/jira/browse/DERBY-754
>             Project: Derby
>          Issue Type: Improvement
>          Components: Performance
>    Affects Versions: 10.2.0.0, 10.1.2.0, 10.1.2.1
>            Reporter: A B
>         Attachments: d754_draft.patch
>
>
> In cases where a SELECT subquery occurs as one of the operands to a Join, it 
> is sometimes beneficial to push join predicates down to the subquery, which 
> allows the optimizer to find a better access path for the subquery and thus 
> can improve query performance.
> For example, take the following query:
> SELECT  t1.a, t1.b, temp.c
> FROM t1
>   LEFT OUTER JOIN (
>     SELECT c,d
>     FROM t2
>   ) as temp
>   ON
>     t1.a = temp.d
>     and temp.d = 8
> ;
> Currently, when optimizing the inner SELECT query, Derby will only pass the 
> inner SELECT's WHERE predicates to the optimizer--the outer ON predicates are 
> ignored.  Thus, in this case, the optimizer will have no predicates to work 
> with and so will do a table scan on t2.
> If, however, Derby were to push the "temp.d = 8" predicate down into the 
> inner SELECT query, the optimizer could use that predicate to make a smarter 
> decision.  For example, if a primary key existed on column "d" in T2, the 
> optimizer could use that and then choose to do an index/hash scan when 
> reading t2 (instead of a table scan).
> Not only does can this kind of "pushing" lead to faster reading of tables, 
> but in some cases where the predicate being pushed references two tables, it 
> can also influence the optimizer's choice of join strategy, which can in turn 
> lead to improved performance.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to