在即将发布的oracle 12c中,有一个新特性非常值得期待,这就是翻页查询优化。
在应用中有很多翻页查询功能,以前我们都是使用rownum来实现。
如查询1-10条记录,使用的查询语句就是这样:
select * from (select row_.*, rownum rownum_ from (select doc_id, title, title_color, title_striking, upload_date, editor from ttt_doc) order by upload_date desc) row_ where rownum <= 10) where rownum_ > 0;
(miki西游 @mikixiyou 原文链接: http://mikixiyou.iteye.com/blog/1685165 )
在12c中,可以这样做了。
select doc_id, title, title_color, title_striking, upload_date, editor from ttt_doc order by upload_date desc fetch first 10 rows only;
如果你要查询11到20条的记录,那么你可以这样做。
select doc_id, title, title_color, title_striking, upload_date, editor from ttt_doc order by upload_date desc offset 10 rows fetch next 10 rows only;
这样比以前的操作方便多了。当然,更重要的一点是,性能会大幅提升。
如果您希望了解更详细的信息,可去查阅oracle 12c的文档。
--end