这里影响查询速度的三个方面:
row_number() over(order by t.time desc)
order by sorted_t.time desc
select * from (select ..)
排序.子查询对大数据量来时间影响比较大.
row_number() over(order by t.time desc)
order by sorted_t.time desc
select * from (select ..)
排序.子查询对大数据量来时间影响比较大.
我还想请问一下,那有什么办法来实现这个功能呢?
谢谢
关键是这个 (row_number() over(order by t.time desc)) 排序会很费时。
to :poyer (瑞德)
另外楼主的 oracle 版本是什么? 排序区设置是多少 如果在512K上的话应该不是很慢。
关键是要在 time 上建立索引。
如果没有建先建索引:如下
create index INDEX_userlog_time on userlog (time);
create index INDEX_userlog_username on userlog (username);
在进行分析
analyze table testop compute statistics;
analyze table testop compute statistics for all indexes;
然后再查询:如果真如楼主所说
其中WHERE 1=1后面还有可能有time, content, username等条件。
有username ,time 条件正好可以使用索引。
我想在1分钟内应该有结果的。