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/