执行计划执行时间差距大

【 TiDB 使用环境】生产环境
【 TiDB 版本】5.0.6
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】 相同的执行计划执行时间差距很大,不同的执行计划互有快慢,都不知道最佳的执行计划是哪个了,例如11-07号“a76a4c820c103f1cb02d1f6d704f9835f5d2ea5b949d9733abb4bd260d44b574”的执行计划需要13秒,而11-08号“a76a4c820c103f1cb02d1f6d704f9835f5d2ea5b949d9733abb4bd260d44b574”的执行计划只需要1s
【资源配置】
【附件:截图/日志/监控】



可以看看dashboard的SQL语句分析,那个地方有显示最大,最小平均时间

相同的执行计划耗时不同,一般和具体SQL的资源消耗相关,例如SQL中代入的变量不同处理的数据量就会有差异,进而导致资源消耗高,耗时增加,可以看看有没有更好的执行计划或者优化下SQL

数据量一致么?表健康度一致么?

多次查询变量是一致的。。

多次查询变量一致,然后相隔时间没超过几分钟。 健康度的问题也想过,但是16:36:06 同一时刻需要13s、6s、5s

执行时间不一样,选择的执行计划一样吗?

做一下trace,看看时间差异哪那一步

目前都很快 不到2s 就是出现同一个执行计划差距很大的情况 不太理解

看plan_digest是一样的

麻烦问下这个trace 怎么做?

https://docs.pingcap.com/zh/tidb/stable/sql-statement-trace#trace

好的,谢谢

有几种情况:

  1. 执行计划一致,但是查询的数据量不一致。
  2. 执行计划一致,可能有其他方面的堵塞,这个具体要看一下dashboard的语句执行时间,看看执行时间长的消耗在哪个部分上了。

1、确定了参数是一样的 ,而且是同一时间执行的
2、在同一时刻,也看了监控 并没有什么异常。


同一个plan_digest 同一时刻差距也大

跑完全相同的SQL,执行耗时差异有这么大吗?

直接点击 dashboard,点开慢查询,找到这几个时间点,逐一每一个看一下。看下SQL执行时间选项卡,看看耗时在哪里,对比的看一下

1.dashboard对比这几个sql时间不同在哪里
2.看一下当时是否有其他sql导致当前sql堵塞,即锁相关

是的,好多报表有这样的问题,一天跑99%都没问题,但是有十几次会慢。我把query 取md5了 两个执行语句、执行计划一样。差5s