oracle 分页效率sql

  方法一:

 SELECT PROCLOG_ID FROM (
  SELECT t.PROCLOG_ID, row_number() OVER (ORDER BY t.PROCLOG_ID DESC) AS rnum
  FROM tab_proclog_nso t
  JOIN tab_proclog_oper oper
  ON t.oper_id=oper.oper_id
  where oper.TYPE='NSO')
  WHERE RNUM BETWEEN 1 AND 10;

 

方法二:

select
    t.PROCLOG_ID,to_char(t.STARTTIME,'YYYY-MM-DD HH24:MI:SS') STARTTIME,t.FULLOPERATION,t.FULLRESULT
    from (select rownum rownum2, b.*
            from (select * from tab_proclog_nso nso
  JOIN tab_proclog_oper oper
  ON nso.oper_id=oper.oper_id
  where oper.TYPE='NSO'
            ORDER BY PROCLOG_ID DESC) b
           where rownum <= 10 ) t
   where t.rownum2 > 0

 

都说row_number()效率高,这两个方法经过测试,性能是一样的。数据量都是百万级的。  在未建索引的情况下,查询都很慢,将近30秒。 

 

大家还有更有效率的查询方法么????

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值