У меня есть индексированная по времени база данных Oracle, которую я пытаюсь запросить по диапазону дат. Я также хочу сократить данные в запросе, чтобы не перегружать их данными.
Автономный запрос даты (2352 строки в 0,203 с):
select oracle_time from t_ssv_soh_packets0
where oracle_time >= TIMESTAMP '2009-01-01 00:00:00'
AND oracle_time <= TIMESTAMP '2009-01-31 00:00:00'
Запрос сокращения сокращения (1017 за 0,89 с):
select oracle_time from t_ssv_soh_packets0
where (rowid,0) in (select rowid, mod(rownum,50) from t_ssv_soh_packets0)
Когда я пытаюсь их объединить, это занимает вечность (48 строк за 32,547 с):
select oracle_time from t_ssv_soh_packets0
where oracle_time >= TIMESTAMP '2009-01-01 00:00:00'
AND oracle_time <= TIMESTAMP '2009-01-31 00:00:00'
AND (rowid,0) in (select rowid, mod(rownum,50) from t_ssv_soh_packets0)
Очевидно, что я делаю здесь что-то в корне неправильно, но я не знаю, как еще сделать запрос по дате и сократить данные.