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

Rick Hillegas updated DERBY-558:
--------------------------------

    Component: SQL

Assigning to SQL component.

> Optimizer hangs with query that uses more than 6 tables and does subquery 
> flattening.
> -------------------------------------------------------------------------------------
>
>          Key: DERBY-558
>          URL: http://issues.apache.org/jira/browse/DERBY-558
>      Project: Derby
>         Type: Bug

>   Components: SQL
>     Versions: 10.1.1.0, 10.0.2.1, 10.0.2.0, 10.1.2.0, 10.2.0.0, 10.0.2.2
>  Environment: Running query in "ij"  with derby.optimizer.noTimeout=true
>     Reporter: A B
>     Assignee: A B
>      Fix For: 10.1.2.0, 10.2.0.0
>  Attachments: d558.patch, repro.sql
>
> I was running a query that has a large number (hundreds) of tables in it and 
> I set the derby property "derby.optimizer.noTimeout" to true to see what plan 
> Derby would choose as the _best_ plan for the query.  When doing so, I ran 
> into a situation where the optimizer hung forever--which is wrong.  I expect 
> that setting "noTimeout" to true might cause the query to run more slowly 
> (since it has to evaluate ALL possible join orders for all of the tables in 
> question), but it should _not_ cause the optimizer to hang forever.
> I noticed that "subquery flattening" is peformed on the query, which 
> introduces dependencies between the various tables and thus restricts the 
> possible join orders that the optimizer can choose (see 
> http://db.apache.org/derby/docs/10.1/tuning/ctuntransform25868.html).  I was 
> eventually able to track the problem down to code in OptimizerImpl where, for 
> queries with more than 6 tables, a certain "jumping" algorithm is used to try 
> to allow the optimizer to find a better plan more quickly.
> Long story short, there is logic in the "jumping" mechanism that tries to put 
> the tables into a legal join order, but in certain (rare) cases where 
> multiple join order dependencies have to be enforced, the jump logic can end 
> up looping indefinitely, causing the "hang" in the optimizer.

-- 
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