You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by "Alin Andrei Corodescu (JIRA)" <ji...@apache.org> on 2017/11/13 08:30:00 UTC

[jira] [Created] (IGNITE-6877) Improve behaviour for non-correlated subqueries

Alin Andrei Corodescu created IGNITE-6877:
---------------------------------------------

             Summary: Improve behaviour for non-correlated subqueries
                 Key: IGNITE-6877
                 URL: https://issues.apache.org/jira/browse/IGNITE-6877
             Project: Ignite
          Issue Type: Improvement
      Security Level: Public (Viewable by anyone)
          Components: sql
    Affects Versions: 2.3
            Reporter: Alin Andrei Corodescu
            Priority: Minor


Ignite behaves poorly in terms of performance when given queries which contain IN or = operators followed by a non-correlated subquery. My guess is that the query is actually run for each row of the table in order to test the condition. 
A possible solution is to store the results of the subquery in a temporary table, and use it from there.
A workaround at the moment is to use joins instead of IN or = operators, but this makes the query much more complicated.

Example:
SELECT name
FROM Employees
WHERE age IN (SELECT age FROM Customers)

The performance of this query is very slow for small amounts of data (about 20 seconds for 4000 rows in each table last time I tried)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)