Vladimir Ozerov created IGNITE-6085: ---------------------------------------
Summary: SQL: JOIN with multiple conditions is extremely slow Key: IGNITE-6085 URL: https://issues.apache.org/jira/browse/IGNITE-6085 Project: Ignite Issue Type: Task Components: sql Affects Versions: 2.1 Reporter: Vladimir Ozerov Fix For: 2.2 Consider the following query: {code} SELECT ... FROM A a INNER JOIN B b ON b.id = a.foreign_id1 OR b.id = a.foreign_id2 {code} In this case H2 cannot use indexes on {{foreign_id1}} or {{foreign_id2}} columns and query execution takes extraordinary time. Known workaround for a problem is to apply multiple JOINs, e.g.: {code} SELECT ... FROM A a LEFT OUTER JOIN B b1 ON b1.id = a.foreign_id1 LEFT OUTER JOIN B b2 ON b2.id = a.foreign_id2 WHERE b1.id IS NOT NULL AND b2.id IS NOT NULL {code} On a single real-world scenario it improved exeution time by a factor of 500 (from 4s to 80ms). Something is terribly wrong here. Probably, H2 cannot perform necessary query re-write, or cannot understand how to use index. Let's find a way to fix that. -- This message was sent by Atlassian JIRA (v6.4.14#64029)