У меня есть индексированная по времени БД 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)
Очевидно, что я делаю здесь что-то принципиально неправильное, но я не знаю, как еще сделать запрос по дате и уменьшить данные.