文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>oracle 的rownum问题

oracle 的rownum问题

时间:2010-12-30  来源:画地自囚

举例:

在工作中碰见这样的问题

select wfcount,cid from (select count(customer_id) wfcount, customer_id cid
    from aaa_review
    where wonderful_flag = 1   
    group by customer_id
    order by wfcount desc) where rownum <100

 

运行时间超过27秒

而把外层rownum取消:

select count(customer_id) wfcount, customer_id cid
    from aaa_review
    where wonderful_flag = 1   
    group by customer_id
    order by wfcount desc

 

竟然在0.8秒就可以完成,差距非常之大

 

后来,分析oracle的调用计划,发现竟然用了不同的索引,而且,慢的那个用了一个狠不相关的全局索引,可见,加上rownum外层查询之后,oracle处理起来和不加rownum的外层处理是完全不一样的。

后来改动为:

 select wfcount,cid from (select /*+ index(aaa_review wonderful_IwDX) */  count(customer_id) wfcount, customer_id cid
    from aaa_review
    where wonderful_flag = 1   
    group by customer_id
    order by wfcount desc) where rownum <100

 

虽然运行时间是0.9秒左右,比不加rownum慢一些,但是已经可以接受

相关阅读 更多 +
排行榜 更多 +
翌日波奇狗的历险记手机版下载

翌日波奇狗的历险记手机版下载

休闲益智 下载
怪兽远征安卓版下载

怪兽远征安卓版下载

角色扮演 下载
谷歌卫星地图免费版下载

谷歌卫星地图免费版下载

生活实用 下载