Prasad,

Your understanding is correct. All entries will be pulled to heap and
sorted there.
In general, *SELECT * FROM table ORDER BY column *query processes all data
on heap, except for the cases, when there is an index on needed columns.

Denis

вт, 31 июл. 2018 г. в 8:44, Prasad Bhalerao <[email protected]>:

> 1) Does ignite use heap space to do the required processing as per the
> execution plan to retrieve the data from cache which is in off heap memory?
>
> 2) Please check the following SQL.  This CACHE_1 has around 50 million
> entries.
>
> select * from (
> select * from CACHE_1 where filter1 = ?  (Q1)
> UNION
> select * from CACHE_1 where filter2 = ?  (Q2)
> UNION
> select * from CACHE_1 where filter3 = ?   (Q3)
> ) order by column1 asc , column2 desc
>
> Lets assume the query Q1,Q2 and Q3 returns 1 million records each, so
> total 3 million records. Let's assume that data query execution is local to
> the node.
>
> Page size is set to 500 to utilize the heap space efficiently or to avoid
> out of memory errors.
>
> In this scenario does ignite brings all 3 million records in heap space
> and then does the union operation and then sorts it on column1 and column2?
>
> I want to keep the memory foot print low. So I am just trying to
> understand how ignite executes the sql internally.
>
> Can someone please explain it?
>
> Thanks,
> Prasad
>
>

Reply via email to