您的位置:首页 > 数据库 > Oracle

Oracle数据库order by查询问题

2020-07-15 06:08 120 查看

问题背景

由于项目使用Oracle数据库,自然对数据库的操作比较多,近日工作内容是查询某一张数据库表,数据库表有27列属性,表中数据量大约60多万。其中索引信息如下:

sql内容如下:

查询条件使用了主键,并且最后按照主键中的gmt_create进行排序,表中数据大约60多万条,按照很正常的思路,用工具查询一下,预估一下时间损耗。

如图可知查询效率还算客观,所以将项目部署。

问题出现

使用postman进行自测验证:

竟然达到了可怕的70s,项目日志打印情况来看,接口响应只占用了2ms左右,故而排除接口问题,开始思考sql优化。由于是单表查询,且有使用索引,由于oracle数据库使用不多,不会查执行过程,所以没有细致分析。怀疑是order by在搞鬼,百度一下,还真是…

看来有一部分原因是由于order by导致,所以在程序中去掉order by,用工具测试一下,并没有什么效果。

把程序调整去掉order by,部署自测。竟然降低到了200ms以下…这差距…

查看原因,还没看出个所以然,先把问题记录,后续学会了更新吧… - -~ !!!!

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: