[
https://issues.apache.org/jira/browse/DERBY-7173?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17913243#comment-17913243
]
Richard Evans commented on DERBY-7173:
--------------------------------------
No the results are the same as expected. With the single clause you get one
row returned, with the two you get two rows returned. What I meant was that
the time taken to execute the loop:
{{while (rs2.next()) {}}
{{ matches++;}}
{{ }}}
is much greater (averaging 7.8ms) with two clauses compared to one (averaging
0.03ms). I've added a modified test which includes the timings and also
verifies the results are as expected.
> Very poor performance with a = ? AND b = ? OR a = ? AND b = ? in query
> ----------------------------------------------------------------------
>
> Key: DERBY-7173
> URL: https://issues.apache.org/jira/browse/DERBY-7173
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.16.1.1
> Reporter: Richard Evans
> Priority: Major
> Attachments: lkp.java
>
>
> Execute a query like:
> SELECT * FROM table WHERE col1 = ? AND col2 = ? OR col1 = ? AND col2 = ?
> Performance is significantly worse then the simpler:
> SELECT * FROM table WHERE col1 = ? AND col2 = ?
> even though both col1 and col2 are indexed.
> Simple test case attached - run with db directory and number of OR clauses in
> query - use 2 for first example above and 1 for second.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)