[
https://issues.apache.org/jira/browse/DERBY-3498?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tiago R. Espinha updated DERBY-3498:
------------------------------------
Urgency: Normal
Triaged for 10.5.2.
Assigned Normal urgency.
> Performance sensitive to FROM order list in three way join with GROUP BY
> ------------------------------------------------------------------------
>
> Key: DERBY-3498
> URL: https://issues.apache.org/jira/browse/DERBY-3498
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Reporter: Daniel John Debrunner
> Priority: Minor
>
> The Order Entry system test has this query in Checks.testCondition2():
> SELECT D.D_ID, D.D_W_ID,D.D_NEXT_O_ID,
> MAX(O.O_ID),MAX(N.NO_O_ID) FROM NEWORDERS N,
> DISTRICT D, ORDERS O WHERE D.D_W_ID=O.O_W_ID
> AND D.D_W_ID = N.NO_W_ID AND D.D_ID = O.O_D_ID
> AND D.D_ID = N.NO_D_ID GROUP BY
> D.D_ID,D.D_W_ID,D.D_NEXT_O_ID
> Changing the FROM list to put DISTRICT first reduced the running time from
> ~138seconds to ~105 and a similar reduction on another machine.
> (with a 1 warehouse database)
> Beyond that, the query seems to take too long. 10 rows will be returned and
> for each district row (returned row) the MAX() values in the select list
> should just be a max lookup in the primary key for the ORDERS and NEWORDERS
> table. The primary key for these tables is W_ID, D_ID, O_ID.
> Thus it should be a scan of the 10 row DISTRICT table with 20 index lookups,
> hard to see how that should table 100 seconds.
> One can see this by using the java-system-mini-codeline-jars target.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.