业务闲时出现异常慢查询sql语句拎出来查询又很快

【 TiDB 使用环境】生产环境
【 TiDB 版本】v5.4.2
【复现路径】做过哪些操作出现的问题
3点41有个定时任务,统计报表,然后把结果写入到t1表,写之前会清空t1表。
不过这个任务每天跑,之前跑了两三年也没出现问题。
今天这次特意查了日志,insert的记录也不会特别多,2千8百条记录。
【遇到的问题:问题现象及影响】
业务闲时出现异常的慢查询,而且这些sql语句放在白天业务高峰时执行都是秒返回的。
请问要如何排查原因?需要看哪些面板指标参数来锁定问题。
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】


慢查询:

overview:

dashboard看一下慢在哪个环节

语句长得一样不见得数据量一样,你看看不同时间点检索的数据量

慢在哪个环节?不是很懂,可以详细点嘛

是同个业务的那3到4条sql语句慢。不同时间点检索的数据量差不多的,查的库存表(总数5百万条),关联商品表(总数80万条)。而且返回记录可能也就几条到2千条(如果只查半年)

有一种情况,我们之前遇到的,就是某一些慢查询不是因,而是果,是有些数据处理导致集群响应变慢,进而导致这些不是慢查询的语句变成了慢查询。建议按时间段排查,不要只排查那几个慢查询语句。

这个我们系统经常遇到 :joy: 时不时的会堵住,然后好一些以主键为条件的sql都显示很慢。也不知道怎么解决。
不过这次应该不是,往前往后都查了。

点进去,再选执行时间那一项,看看到底慢在哪?


第二条:

第三条:

cop_task任务积压了,优化下其它同时段的慢语句。

但是看dashboard往前一点的时候点又没有出现慢查询语句呢

你这第一条就是单纯sql跑了15秒?你看其他时间段这个sql的运行情况。
第二条sql是tikv的comprocessor时间长,是那个时间点tikv的压力大或者网络压力大
你可以把sql拉出来手工执行下explain analyze看下现在那个环节不叫消耗时间

第一条在其他时间段执行都是0.14秒左右的,这几条sql查的都是差不多的;那个时间点,有个任务在批量insert报表数据,2800条记录;才几百万记录的表,平常不走索引也不至于那么慢的。

那个时间点的热力图发下看看

热力图,是这个吗?

  1. 这个执行计划能看下吗? 随便找个15.1s的就行

  2. 红框里黄线这块是不是你那个业务表?鼠标放上去会显示表的信息;(可以单独看看读热点)

结合热力图看一下io,之前遇到过大表io导致其他正常查询阻塞的,也是comporocessor时间长,或者网络问题

grafana装了可以看看快慢时候tikv节点的cpu和io负载

我们这里遇到过一次数据分布不均匀的问题,有点像

把不同时间的执行计划 打印出来,看是不是一样的啊。
我猜可能有锁,间歇性出现。会不会有配置那种在闲时执行的运维任务?