首页 新闻 会员 周边

oracle 倒序查询

0
悬赏园豆:30 [已关闭问题] 关闭于 2012-07-20 16:38

如题,场景应该很常见,就是有张表a,id自动增长,还有一字段是记录的插入时间,当然还有很多其它字段,现在需要将查询结果按id或插入时间(实际是一个效果)倒序排列显示,就是把最新添加的数据显示在最前。目前表的数据有5000多万,每天增加20多万。查询条件的字段已经建了索引,但是加了 order by id desc 或者order by createdt desc后就很慢,已经用/*+first_rows*/ 了。请问一般是如何解决的?是否采用倒序索引?

select /*+first_rows*/ * from (select a.*,rownum as num from (select * from a where field1=231312 order by id desc ) a where rownum<16 ) b where num>0

field1已经有索引。

莫慌的主页 莫慌 | 初学一级 | 园豆:9
提问于:2011-12-23 10:17
< >
分享
所有回答(2)
0

题目不是说了:将查询结果按id或插入时间(实际是一个效果)倒序排列显示

悟行 | 园豆:12559 (专家六级) | 2011-12-23 10:36
0

这么多数据?我觉得应该建一个history表吧,过一段时间就把数据移过去。一般都是报表才需要所有的历史数据。而报表的话慢一点还是能接受的啦~~~

宇宙工作室 | 园豆:205 (菜鸟二级) | 2011-12-23 12:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册