oracle数据库sql执行慢,走错索引

在压测项目中,遇到并发请求响应时间过长的问题,深入分析发现是由于索引选择不当导致。通过表分析及调整索引策略,成功优化查询效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

最近在进行压测项目时发现压测结果很不理想,并发100的情况下响应时间达到2秒多,这对于需求来说是不能接受的,通过分析日志发现有两个表的select语句耗时很高,100-500ms之间,但是sql就是简单的根据主键字段去查询,将sql拿出直接在plsql中执行还是很慢。

问题分析

在生产环境执行同样的sql耗时在几十毫秒,差距明显,切生产数据量级远超压测环境数据。继而重建了几个表的索引还是很慢,这么简单的sql没想过分析执行计划,看了一眼执行计划发现查询走的索引不对,没有走主键索引,走了另外的一个普通索引,问题锁定。

问题解决

接触oracle数据库时间不长,网上搜了下资料,有些说的过深不是很理解,试着分析了表:

analyze table tablename compute statistics

查询时间明显提高,看执行计划是走了主键索引,问题解决。

问题总结

关于表分析与索引分析可参考这篇文章:Oracle-表分析和索引分析解读

查询慢两大招:创建索引与表分析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值