我有一个时间索引的 Oracle DB,我试图按日期范围查询。我还想在查询中减少数据,这样我就不会被太多的数据淹没。
独立日期查询(0.203s 内 2352 行):
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'
支持减少查询(0.89s 内 1017 个):
select oracle_time from t_ssv_soh_packets0
where (rowid,0) in (select rowid, mod(rownum,50) from t_ssv_soh_packets0)
当我尝试将它们组合起来时,它需要很长时间(32.547 秒中的 48 行):
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)
显然我在这里做了一些根本错误的事情,但我不知道如何同时按日期查询和减少数据。