Hello,

Thanks for responding.

Well, it takes 50ms to fetch the first line.

What I don't get is why it takes 8 seconds to fetch the 50th line.

In both cases I'm only fetching ONE row.

I suppose query execution time should be roughly the same whether i want the
1st or the 50th line.

I mean, aren't OFFSET and LIMIT just discarding rows from the resulting
dataset? Isn't it a question of  looping through the cursor until it finds
the Nth row? Why does it look like it's responding with exponential time as
I increase the offset?

Looking at explain it does look like it's doing a full table scan. In the
following query I have indexes over the joining columns on both tables:

SELECT
    SE__Z1.ISINCODE AS __C0_0,
    M__Z0.SYMBOL AS __C0_1,
    NULL AS __C0_2,
    CURRENT_TIMESTAMP() AS __C0_3,
    M__Z0.LASTTIME AS __C0_4,
    M__Z0.OPENPRICE AS __C0_5,
    M__Z0.HIGHPRICE AS __C0_6,
    M__Z0.LOWPRICE AS __C0_7,
    M__Z0.CLOSEPRICE AS __C0_8,
    M__Z0.LASTPRICE AS __C0_9,
    M__Z0.LASTQUANTITY AS __C0_10,
    M__Z0.BIDPRICE AS __C0_11,
    M__Z0.ASKPRICE AS __C0_12,
    M__Z0.BIDSIZE AS __C0_13,
    M__Z0.ASKSIZE AS __C0_14
FROM SERVERDEAL.MARKETDATA M__Z0
    /* SERVERDEAL.MARKETDATA.__SCAN_ */
LEFT OUTER JOIN SIMS.SECURITYEXCHANGE SE__Z1
    /* SIMS.SECURITYEXCHANGE.__SCAN_ */
    ON (SE__Z1.SECURITYTYPE = M__Z0.MARKET)
    AND ((SE__Z1.EXCHANGEID = M__Z0.EXCHANGE)
    AND (SE__Z1.SYMBOL = M__Z0.SYMBOL))
LIMIT 11












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

Reply via email to