есть селект такого вида:
SELECT first_col
FROM (SELECT first_col
FROM (SELECT first_col
FROM test
UNION ALL
SELECT first_col
FROM test_another
UNION ALL
SELECT first_col
FROM test_third)
ORDER BY DBMS_RANDOM.VALUE)
WHERE ROWNUM < 10
Нам нужно выбрать случайные значения из запроса. Причем количество случаных строк очень мало относительно самого слекта. То есть вот этот селект:
SELECT first_col
FROM test
UNION ALL
SELECT first_col
FROM test_another
UNION ALL
SELECT first_col
FROM test_third)
выбирает скажем 700 тысяч строк, затем произвольно сортирует и берет десять. И занимает это времени само собой не кисло. Как бы ускорить этот запрос ?