Performance issues with the query
Client provided me the following query is causing slowness (high CPU).. and they are using Oracle 11g Standard edition.
Query:
SELECT min(rev)
FROM REPORT_ITEM
WHERE rev > :1
AND rev <= :2
UNION
SELECT rev
FROM
(
SELECT mod(row_number() over(order by rev), ) as d,
rev
FROM REPORT_ITEM
WHERE rev > :4
AND rev <= :5
)
WHERE d=0
UNION
SELECT max(rev)
FROM REPORT_ITEM
WHERE rev > :6
AND rev <= :7
Exec Plan:
SELECT STATEMENT Optimizer=ALL_ROWS (Cost=15300 Cardinality=1346277 Bytes=35003164)
SORT (UNIQUE) (Cost=15300 Cardinality=1346277 Bytes=35003164)
UNION-ALL
SORT (AGGREGATE) (Cost=5 Cardinality=1 Bytes=7)
FILTER
FIRST ROW (Cost=4 Cardinality=1 Bytes=7)
INDEX (RANGE SCAN (MIN/MAX)) OF REPORT_ITEM_REV_UK (INDEX (UNIQUE)) (Cost=4 Cardinality=1 Bytes=7)