Dashboard监控查询慢sql,遇到并发问题

某个SQL,在并发执行查询的时候,发现它的执行时间比较长(花费20s左右),如果单独拎出来执行(无并发),只要执行0.7s左右。请问如何排查?


看执行计划和你单独跑的时候的执行计划是不是一样

你执行下explain analyze 这个sql,然后贴一下结果

查看慢日志和 explain analyze 中SQL表现来定位查询耗时出现在哪里

会不会当时整个数据库都慢,当时执行的SQL都是慢SQL;
在使用别的数据库的时候遇到过

通过慢日志把耗时20s的sql的执行计划拿出来,与单独执行的sql的执行计划比较,看看具体耗时在哪一步

截图这两sql是同一个sql

并发大了,是会慢

看一下对应实际cpu 和内存情况,是不是资源强制影响sql 响应时间

知道是同一个sql,只有sql看不出来啥的。看他们的执行计划才知道两个sql的耗时哪里不一样的,才能进一步分析。

看看并发时资源使用情况

1 个赞

执行计划一样吗,扫描数据多吗,是不是读线程池满了呢

这个要看当时的负载情况是否一致,以及查询过滤是否一样

并发高吗? 资源有没有打满,以前遇到过单条sql执行很快,但是并发上来后,资源就打满了,导致语句执行时间很长