(Sometimes it ran for 10.5 seconds!)
SELECT SQ_.ID FROM ( SELECT ID FROM JIRAISSUE WHERE PROJECT IN(:1, :2) ORDER BY UPDATED DESC ) SQ_ WHERE ROWNUM <= 10;
It seems, only the
IN
-s contents are changing over the course, so we could fit an index for that. Lets see, what we have:ORDER BY UPDATED DESC
- this will be the leading column in descending order,PROJECT
- filter, this should be in,ID
- as we projected this column, if we put this in the index, it can be an index-only query.
CREATE INDEX IX_JIRAISSUE_UPDATED_PROJ_ID ON JIRAISSUE (UPDATED DESC, PROJECT ASC, ID ASC);
Results in an index full scan and a count-with-stopkey. Yaay, the cost is 3 (three), in a table with ~2 million rows.