Oracle 12c新特性之翻页查询


在即将发布的Oracle 12c中,有一个新特性非常值得期待,这就是翻页查询优化。

在应用中有很多翻页查询功能,以前我们都是使用rownum来实现。

如查询1-10条记录,使用的查询语句就是这样:

  1. select *  
  2.   from (select row_.*, rownum rownum_  
  3.           from (select doc_id,  
  4.                        title,  
  5.                        title_color,  
  6.                        title_striking,  
  7.                        upload_date,  
  8.                        editor  
  9.                   from ttt_doc)  
  10.          order by upload_date desc) row_  
  11.  where rownum <= 10)  
  12.  where rownum_ > 0; 

在12c中,可以这样做了。

  1. select doc_id, title, title_color, title_striking, upload_date, editor  
  2.   from ttt_doc  
  3.  order by upload_date desc 
  4.  fetch first 10 rows only

如果你要查询11到20条的记录,那么你可以这样做。

  1. select doc_id, title, title_color, title_striking, upload_date, editor  
  2.   from ttt_doc  
  3.  order by upload_date desc 
  4.  offset 10 rows 
  5.  fetch next 10 rows only;   

这样比以前的操作方便多了。当然,更重要的一点是,性能会大幅提升。

如果您希望了解更详细的信息,可去查阅oracle 12c的文档。

--end

相关内容