Hi all, I have the following DDL and query; please note the query is written this way to direct proper use of the index; it is much faster than any JOIN-based alternative we've tried (and we've tried quite a few). The problem is only with sorting the outer SELECT; while we appreciate any suggestion to rewrite the nested queries in a more readable manner, that is not really the issue unless there is some connection we can't grasp.
Some metrics: the table is about 2M records and the estimates in the attached execution plan are quite accurate. The problem: The size of the outer SELECT result set is ~20K rows. If we take away the outer ORDER BY clause the query runs in <10ms. Add the outer ORDER BY clause and it takes 76 seconds !!! It seems that a simple sorting of a 20K result set which should not be bigger than ~300KB binary takes 76 seconds!!! Moreover, profiling with different result sizes it becomes evident that the time is linear to N^2. It looks almost like the whole query is re-run for each result row to populate the next-lowest in some weird form of selection sort, from what I can tell from the execution plan. Question: Is this expected behavior? The EXPLAIN QUERY PLAN says a temp b-tree is used for sorting the outer select, but it also seems to double the inner loops which is quite consistent with the N^2 behavoiur exhibited; how can we improve this to be able to have SORT BY ... LIMIT on this SQL? (reading the whole result set and sorting externally takes <2ms but it's obviously suboptimal)? Please note, we've already tried: CREATE TEMP TABLE x AS (...query without outer sort...); CREATE xind ON x (price); SELECT * FROM x ORDER BY 2 but it also takes 30 seconds; for some really esoteric reason, CREATE TABLE x AS ... takes all of those 30s, even though the execution plan looks identical to the simple select (the same 72 steps). This is what I would dare call "spooky", any explanation would be appreciated here too. Any help would be greatly appreciated, it's a delicate point in our project. Thanks and sorry for the excruciatingly long mail, Dinu Environment: SqLite 3.7.17 / CentOS 7 (vanilla installled from repos via yum) File format 4 PRAGMA automatic_index : 1 DDL: CREATE TABLE materializedPrices ( id INTEGER, price FLOAT, perPerson FLOAT, currency TEXT, promotionType INTEGER, promotionName TEXT, provider TEXT, instanceId TEXT, accomodationHash TEXT, accomodationName TEXT, start DATE, [end] DATE, PRIMARY KEY ( id ) ); CREATE INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 ON materializedPrices (provider,instanceId,start,end,accomodationHash,price); QUERY: SELECT s.___packageId, ( SELECT ( SELECT ( SELECT MIN(m.price) FROM materializedPrices AS m WHERE m.provider=__provider AND m.instanceId=__instanceId AND m.start<='2015-03-08' AND m.end>='2015-03-08' AND m.accomodationHash IN ('2a') ) + ( SELECT MIN(m.price) FROM materializedPrices AS m WHERE m.provider=__provider AND m.instanceId=__instanceId AND m.start<='2015-03-08' AND m.end>='2015-03-08' AND m.accomodationHash IN ('2a') ) AS price FROM ( SELECT DISTINCT date AS _date, duration AS _duration, transportType AS _transportType FROM materializedInstances WHERE packageId=___packageId AND provider=__provider AND instanceId=__instanceId ) WHERE price IS NOT NULL ORDER BY 1 LIMIT 1 ) AS price FROM ( SELECT DISTINCT provider AS __provider, instanceId AS __instanceId FROM materializedInstances WHERE packageId=___packageId ) WHERE price IS NOT NULL ORDER BY 1 LIMIT 1 ) AS price FROM ( SELECT DISTINCT packageId AS ___packageId FROM materializedInstances ) AS s /* Toggle below sort to exhibit weird behavior */ ORDER BY 2 Execution plan with sort: | |.|.|. ---+--+-+-+-------------------------------------------------------------------------------------------------------------------------------------------------------- 1 |1 |0|0|SCAN TABLE materializedInstances USING COVERING INDEX 1ab7a7b8a24dce53a34a650587c5bfdabcc785a2 (~20525 rows) 2 |0 |0|0|SCAN SUBQUERY 1 AS s (~20525 rows) 3 |0 |0|0|EXECUTE CORRELATED SCALAR SUBQUERY 2 4 |3 |0|0|SEARCH TABLE materializedInstances USING COVERING INDEX 1ab7a7b8a24dce53a34a650587c5bfdabcc785a2 (packageId=?) (~19 rows) 5 |2 |0|0|SCAN SUBQUERY 3 (~9 rows) 6 |2 |0|0|EXECUTE CORRELATED SCALAR SUBQUERY 4 7 |5 |0|0|SEARCH TABLE materializedInstances USING COVERING INDEX 1ab7a7b8a24dce53a34a650587c5bfdabcc785a2 (packageId=? AND provider=? AND instanceId=?) (~1 rows) 8 |4 |0|0|SCAN SUBQUERY 5 (~1 rows) 9 |4 |0|0|EXECUTE CORRELATED SCALAR SUBQUERY 6 10 |6 |0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 11 |6 |0|0|EXECUTE LIST SUBQUERY 7 12 |4 |0|0|EXECUTE CORRELATED SCALAR SUBQUERY 7 13 |7 |0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 14 |7 |0|0|EXECUTE LIST SUBQUERY 8 15 |4 |0|0|EXECUTE CORRELATED SCALAR SUBQUERY 8 16 |8 |0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 17 |8 |0|0|EXECUTE LIST SUBQUERY 9 18 |4 |0|0|EXECUTE CORRELATED SCALAR SUBQUERY 9 19 |9 |0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 20 |9 |0|0|EXECUTE LIST SUBQUERY 10 21 |4 |0|0|EXECUTE CORRELATED SCALAR SUBQUERY 10 22 |10|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 23 |10|0|0|EXECUTE LIST SUBQUERY 11 24 |4 |0|0|EXECUTE CORRELATED SCALAR SUBQUERY 11 25 |11|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 26 |11|0|0|EXECUTE LIST SUBQUERY 12 27 |4 |0|0|USE TEMP B-TREE FOR ORDER BY 28 |2 |0|0|EXECUTE CORRELATED SCALAR SUBQUERY 12 29 |13|0|0|SEARCH TABLE materializedInstances USING COVERING INDEX 1ab7a7b8a24dce53a34a650587c5bfdabcc785a2 (packageId=? AND provider=? AND instanceId=?) (~1 rows) 30 |12|0|0|SCAN SUBQUERY 13 (~1 rows) 31 |12|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 14 32 |14|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 33 |14|0|0|EXECUTE LIST SUBQUERY 15 34 |12|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 15 35 |15|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 36 |15|0|0|EXECUTE LIST SUBQUERY 16 37 |12|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 16 38 |16|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 39 |16|0|0|EXECUTE LIST SUBQUERY 17 40 |12|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 17 41 |17|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 42 |17|0|0|EXECUTE LIST SUBQUERY 18 43 |12|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 18 44 |18|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 45 |18|0|0|EXECUTE LIST SUBQUERY 19 46 |12|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 19 47 |19|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 48 |19|0|0|EXECUTE LIST SUBQUERY 20 49 |12|0|0|USE TEMP B-TREE FOR ORDER BY 50 |2 |0|0|EXECUTE CORRELATED SCALAR SUBQUERY 20 51 |21|0|0|SEARCH TABLE materializedInstances USING COVERING INDEX 1ab7a7b8a24dce53a34a650587c5bfdabcc785a2 (packageId=? AND provider=? AND instanceId=?) (~1 rows) 52 |20|0|0|SCAN SUBQUERY 21 (~1 rows) 53 |20|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 22 54 |22|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 55 |22|0|0|EXECUTE LIST SUBQUERY 23 56 |20|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 23 57 |23|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 58 |23|0|0|EXECUTE LIST SUBQUERY 24 59 |20|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 24 60 |24|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 61 |24|0|0|EXECUTE LIST SUBQUERY 25 62 |20|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 25 63 |25|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 64 |25|0|0|EXECUTE LIST SUBQUERY 26 65 |20|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 26 66 |26|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 67 |26|0|0|EXECUTE LIST SUBQUERY 27 68 |20|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 27 69 |27|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 70 |27|0|0|EXECUTE LIST SUBQUERY 28 71 |20|0|0|USE TEMP B-TREE FOR ORDER BY 72 |2 |0|0|USE TEMP B-TREE FOR ORDER BY 73 |0 |0|0|EXECUTE CORRELATED SCALAR SUBQUERY 28 74 |29|0|0|SEARCH TABLE materializedInstances USING COVERING INDEX 1ab7a7b8a24dce53a34a650587c5bfdabcc785a2 (packageId=?) (~19 rows) 75 |28|0|0|SCAN SUBQUERY 29 (~9 rows) 76 |28|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 30 77 |31|0|0|SEARCH TABLE materializedInstances USING COVERING INDEX 1ab7a7b8a24dce53a34a650587c5bfdabcc785a2 (packageId=? AND provider=? AND instanceId=?) (~1 rows) 78 |30|0|0|SCAN SUBQUERY 31 (~1 rows) 79 |30|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 32 80 |32|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 81 |32|0|0|EXECUTE LIST SUBQUERY 33 82 |30|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 33 83 |33|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 84 |33|0|0|EXECUTE LIST SUBQUERY 34 85 |30|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 34 86 |34|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 87 |34|0|0|EXECUTE LIST SUBQUERY 35 88 |30|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 35 89 |35|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 90 |35|0|0|EXECUTE LIST SUBQUERY 36 91 |30|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 36 92 |36|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 93 |36|0|0|EXECUTE LIST SUBQUERY 37 94 |30|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 37 95 |37|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 96 |37|0|0|EXECUTE LIST SUBQUERY 38 97 |30|0|0|USE TEMP B-TREE FOR ORDER BY 98 |28|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 38 99 |39|0|0|SEARCH TABLE materializedInstances USING COVERING INDEX 1ab7a7b8a24dce53a34a650587c5bfdabcc785a2 (packageId=? AND provider=? AND instanceId=?) (~1 rows) 100|38|0|0|SCAN SUBQUERY 39 (~1 rows) 101|38|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 40 102|40|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 103|40|0|0|EXECUTE LIST SUBQUERY 41 104|38|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 41 105|41|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 106|41|0|0|EXECUTE LIST SUBQUERY 42 107|38|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 42 108|42|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 109|42|0|0|EXECUTE LIST SUBQUERY 43 110|38|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 43 111|43|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 112|43|0|0|EXECUTE LIST SUBQUERY 44 113|38|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 44 114|44|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 115|44|0|0|EXECUTE LIST SUBQUERY 45 116|38|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 45 117|45|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 118|45|0|0|EXECUTE LIST SUBQUERY 46 119|38|0|0|USE TEMP B-TREE FOR ORDER BY 120|28|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 46 121|47|0|0|SEARCH TABLE materializedInstances USING COVERING INDEX 1ab7a7b8a24dce53a34a650587c5bfdabcc785a2 (packageId=? AND provider=? AND instanceId=?) (~1 rows) 122|46|0|0|SCAN SUBQUERY 47 (~1 rows) 123|46|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 48 124|48|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 125|48|0|0|EXECUTE LIST SUBQUERY 49 126|46|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 49 127|49|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 128|49|0|0|EXECUTE LIST SUBQUERY 50 129|46|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 50 130|50|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 131|50|0|0|EXECUTE LIST SUBQUERY 51 132|46|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 51 133|51|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 134|51|0|0|EXECUTE LIST SUBQUERY 52 135|46|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 52 136|52|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 137|52|0|0|EXECUTE LIST SUBQUERY 53 138|46|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 53 139|53|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 140|53|0|0|EXECUTE LIST SUBQUERY 54 141|46|0|0|USE TEMP B-TREE FOR ORDER BY 142|28|0|0|USE TEMP B-TREE FOR ORDER BY 143|0 |0|0|USE TEMP B-TREE FOR ORDER BY The execution plan without the final ORDER BY clause is remarkably exactly half-1: # | |.|.|. --+--+-+-+-------------------------------------------------------------------------------------------------------------------------------------------------------- 1 |1 |0|0|SCAN TABLE materializedInstances USING COVERING INDEX 1ab7a7b8a24dce53a34a650587c5bfdabcc785a2 (~20525 rows) 2 |0 |0|0|SCAN SUBQUERY 1 AS s (~20525 rows) 3 |0 |0|0|EXECUTE CORRELATED SCALAR SUBQUERY 2 4 |3 |0|0|SEARCH TABLE materializedInstances USING COVERING INDEX 1ab7a7b8a24dce53a34a650587c5bfdabcc785a2 (packageId=?) (~19 rows) 5 |2 |0|0|SCAN SUBQUERY 3 (~9 rows) 6 |2 |0|0|EXECUTE CORRELATED SCALAR SUBQUERY 4 7 |5 |0|0|SEARCH TABLE materializedInstances USING COVERING INDEX 1ab7a7b8a24dce53a34a650587c5bfdabcc785a2 (packageId=? AND provider=? AND instanceId=?) (~1 rows) 8 |4 |0|0|SCAN SUBQUERY 5 (~1 rows) 9 |4 |0|0|EXECUTE CORRELATED SCALAR SUBQUERY 6 10|6 |0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 11|6 |0|0|EXECUTE LIST SUBQUERY 7 12|4 |0|0|EXECUTE CORRELATED SCALAR SUBQUERY 7 13|7 |0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 14|7 |0|0|EXECUTE LIST SUBQUERY 8 15|4 |0|0|EXECUTE CORRELATED SCALAR SUBQUERY 8 16|8 |0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 17|8 |0|0|EXECUTE LIST SUBQUERY 9 18|4 |0|0|EXECUTE CORRELATED SCALAR SUBQUERY 9 19|9 |0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 20|9 |0|0|EXECUTE LIST SUBQUERY 10 21|4 |0|0|EXECUTE CORRELATED SCALAR SUBQUERY 10 22|10|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 23|10|0|0|EXECUTE LIST SUBQUERY 11 24|4 |0|0|EXECUTE CORRELATED SCALAR SUBQUERY 11 25|11|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 26|11|0|0|EXECUTE LIST SUBQUERY 12 27|4 |0|0|USE TEMP B-TREE FOR ORDER BY 28|2 |0|0|EXECUTE CORRELATED SCALAR SUBQUERY 12 29|13|0|0|SEARCH TABLE materializedInstances USING COVERING INDEX 1ab7a7b8a24dce53a34a650587c5bfdabcc785a2 (packageId=? AND provider=? AND instanceId=?) (~1 rows) 30|12|0|0|SCAN SUBQUERY 13 (~1 rows) 31|12|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 14 32|14|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 33|14|0|0|EXECUTE LIST SUBQUERY 15 34|12|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 15 35|15|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 36|15|0|0|EXECUTE LIST SUBQUERY 16 37|12|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 16 38|16|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 39|16|0|0|EXECUTE LIST SUBQUERY 17 40|12|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 17 41|17|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 42|17|0|0|EXECUTE LIST SUBQUERY 18 43|12|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 18 44|18|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 45|18|0|0|EXECUTE LIST SUBQUERY 19 46|12|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 19 47|19|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 48|19|0|0|EXECUTE LIST SUBQUERY 20 49|12|0|0|USE TEMP B-TREE FOR ORDER BY 50|2 |0|0|EXECUTE CORRELATED SCALAR SUBQUERY 20 51|21|0|0|SEARCH TABLE materializedInstances USING COVERING INDEX 1ab7a7b8a24dce53a34a650587c5bfdabcc785a2 (packageId=? AND provider=? AND instanceId=?) (~1 rows) 52|20|0|0|SCAN SUBQUERY 21 (~1 rows) 53|20|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 22 54|22|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 55|22|0|0|EXECUTE LIST SUBQUERY 23 56|20|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 23 57|23|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 58|23|0|0|EXECUTE LIST SUBQUERY 24 59|20|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 24 60|24|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 61|24|0|0|EXECUTE LIST SUBQUERY 25 62|20|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 25 63|25|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 64|25|0|0|EXECUTE LIST SUBQUERY 26 65|20|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 26 66|26|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 67|26|0|0|EXECUTE LIST SUBQUERY 27 68|20|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 27 69|27|0|0|SEARCH TABLE materializedPrices AS m USING COVERING INDEX ffd0d22435eccb1020821f3ec70d038dfc7e5d91 (provider=? AND instanceId=? AND start<?) (~1 rows) 70|27|0|0|EXECUTE LIST SUBQUERY 28 71|20|0|0|USE TEMP B-TREE FOR ORDER BY 72|2 |0|0|USE TEMP B-TREE FOR ORDER BY