Oracle数据库order by查询问题

问题背景

由于项目使用Oracle数据库,自然对数据库的操作比较多,近日工作内容是查询某一张数据库表,数据库表有27列属性,表中数据量大约60多万。其中索引信息如下:
在这里插入图片描述
sql内容如下:
在这里插入图片描述
查询条件使用了主键,并且最后按照主键中的gmt_create进行排序,表中数据大约60多万条,按照很正常的思路,用工具查询一下,预估一下时间损耗。
在这里插入图片描述
如图可知查询效率还算客观,所以将项目部署。

问题出现

使用postman进行自测验证:
在这里插入图片描述
竟然达到了可怕的70s,项目日志打印情况来看,接口响应只占用了2ms左右,故而排除接口问题,开始思考sql优化。由于是单表查询,且有使用索引,由于oracle数据库使用不多,不会查执行过程,所以没有细致分析。怀疑是order by在搞鬼,百度一下,还真是…
在这里插入图片描述
看来有一部分原因是由于order by导致,所以在程序中去掉order by,用工具测试一下,并没有什么效果。
在这里插入图片描述
把程序调整去掉order by,部署自测。竟然降低到了200ms以下…这差距…
在这里插入图片描述
查看原因,还没看出个所以然,先把问题记录,后续学会了更新吧… - -~ !!!!


问题解决:
由于有人更新了40万条数据,没有提交commit,引起了行锁,造成的查询效率较低。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值