oracle分页 慢,oracle分页查询缓慢的情况

这是延续很久的问题了

项目使用的Oracle,一百多万数据,分页显示10条,高配服务器显示首页都要10秒以上,配置差的服务器要好几十秒,实在无法忍受,还不如

mysql的速度

前前后后多次想对这个进行优化,但是好几次都是研究了半天没有一点进展

昨天和今天通过sql developer (不要笑话我不用PL/SQL)的解释计划,看到查询使用了全表扫描

之前一直认为是使用了like的原因

在我自己的知识库里,我只知道like 关键字开头不以通配符开始,是可以使用索引的

但是现实就是我没以通配符开始,也没使用索引

然后我又给另外一个条件建立索引,还是不行

把外在分页的那些语句去掉,还是没使用索引

把左连接去掉,仍然没使用索引

都绝望了的时候

把order by删掉,瞬间奇迹就来了

原来查询要12秒以上的,马上变成0.078秒了

这不是问题么

于是马上又去找,oracle order by查询缓慢的原因

找了很多,很多人给的解决办法就是建索引,走索引

但是这个怎么操作就不是很详细了

好吧,那还是就走索引嘛,要让order by后面的走索引,单独给order by后面的字段创建了索引,但是查询也没用啊,还是依然的慢

又想到有个网友说了,order by后面跟主键

好吧,我这个不可能跟主键啊,我试着跟了一下主键在后面

查询确实快了,但是这个查询的结果不是我想要的

怎么办呢

主键吧,就是唯一索引,是吧

那么如果我创建一个符合索引,把order by后面的字段和主键一起创建复合索引怎样?

试了下,哈哈,很高兴成功了。

查询从12秒变0.0几秒了,快了几百倍吧。

至此问题结束,

那么怎么解决的呢

还是就是给order by 后面的字段创建索引,创建的是含有主键的复合索引

另外count语句慢的时候,在count里加一个where 条件的字段,效果也很好。

------------正 文 已 结 束, 感 谢 您 的 阅 读 (折雨的天空)--------------------

转载请注明本文标题和链接:《oracle分页查询缓慢的情况》

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值