You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by Naveen <na...@gmail.com> on 2018/04/10 15:35:28 UTC

Re: Ignite Sql query problem using IN clause

Has it been fixed in 2.4 ?

Looks like it is not, when I generate the explain plan for a query which has
a composite key

Here are the queries I ran and explain plan results.
When I use IN, it uses the full table scan, otherwise It does look up on
primary key

explain SELECT * FROM "MapLonglistCache".MAP_LONGLIST  WHERE 
(ENTITY_ID,RELATIONSHIP,SEQUENCE_NO) = ('12345', 'OutageID_ServiceIDs', '9') 

SELECT
    __Z0.ENTITY_ID AS __C0_0,
    __Z0.MAPPING_ID_LIST AS __C0_1,
    __Z0.RELATIONSHIP AS __C0_2,
    __Z0.UPDATEDDATETIME AS __C0_3,
    __Z0.UPDATEDBY AS __C0_4,
    __Z0.SEQUENCE_NO AS __C0_5,
    __Z0.TUPLE_COUNT AS __C0_6
FROM "MapLonglistCache".MAP_LONGLIST __Z0
    /* "MapLonglistCache".MAP_LONGLIST.__SCAN_ */
WHERE (__Z0.ENTITY_ID, __Z0.RELATIONSHIP, __Z0.SEQUENCE_NO) = ('12345',
'OutageID_ServiceIDs', '9')

explain SELECT * FROM "MapLonglistCache".MAP_LONGLIST  WHERE 
ENTITY_ID = '12345' AND 
RELATIONSHIP = 'OutageID_ServiceIDs' AND 
SEQUENCE_NO='9' 


SELECT
    __Z0.ENTITY_ID AS __C0_0,
    __Z0.MAPPING_ID_LIST AS __C0_1,
    __Z0.RELATIONSHIP AS __C0_2,
    __Z0.UPDATEDDATETIME AS __C0_3,
    __Z0.UPDATEDBY AS __C0_4,
    __Z0.SEQUENCE_NO AS __C0_5,
    __Z0.TUPLE_COUNT AS __C0_6
FROM "MapLonglistCache".MAP_LONGLIST __Z0
    /* "MapLonglistCache".MAP_LONGLIST_PK: SEQUENCE_NO = '9'
        AND ENTITY_ID = '12345'
        AND RELATIONSHIP = 'OutageID_ServiceIDs'
     */
WHERE (__Z0.SEQUENCE_NO = '9')
    AND ((__Z0.ENTITY_ID = '12345')
    AND (__Z0.RELATIONSHIP = 'OutageID_ServiceIDs'))

Any suggestions on this.

Thanks
naveen



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Re: Ignite Sql query problem using IN clause

Posted by mike-griggs <en...@gmail.com>.
There is a suggested workaround in
https://apacheignite-sql.readme.io/docs/performance-and-debugging#section-sql-performance-and-usability-considerations,
item 2

 As a workaround...you can rewrite the query in the following way: select
p.name from Person p join table(id bigint = ?) i on p.id = i.id.



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/