暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

生产接口响应超时,问题排查过程

487

该篇文章主要用于问题记录。

   在晚上上线过程中,发现客服页面有一个查询接口,响应超时,三分多钟没有结果,但是拿下SQL语句,在生产数据库中执行,却非常快,第一次有些慢,不过接下来的每一次一秒多就有结果了,有些诡异。(SQL就不放上来了)

  与DBA沟通后,DBA老师认为,事数据库在日常的使用过程中,不断的DML操作,导致表和索引出现碎片。之这会导致前有很多的空闲空间,而oracle在做全表扫描的时候会读取HWM以下的所有block,这样会产生额外的IO,影响性能。这导致接口查询比较慢,但是pl/sql本身可能有缓存机制,导致后续查询比较快

  操作后发现,收集统计信息等操作,不好用,无法释放索引删除块所占用的存储空间。

最后采用的是重建SQL查询中,涉及到的大表的索引,也就是重建索引

总结一下:时间久了,大量的DML操作导致,数据库表和索引碎片多了,导致执行计划没选对,用时过长,而pl/sql本身有缓存机制,导致用sql语句直接在数据库后续查询比较快


文章转载自琢磨先生DataBase,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论