升级到8.1之后,多了1个慢查询,sql语句就一个“;”(分号),无用户信息。

【 TiDB 使用环境】生产环境
【 TiDB 版本】v8.1.0
【复现路径】
【遇到的问题】
今日凌晨0点左右(6月13日)对tidb做了版本升级,从v6.5.0 升级到了 v8.1.0,不停机升级。
升级过程一切正常,没有任何报错信息,升级完成后,连接正常,各系统也运行稳定。

早上在Dashboard上观察慢查询时,发现多了一个奇怪的慢查询。
语句就一个分号“;”,而且过10几分钟就执行一次,最多内存也忽大忽小。基本信息里也不显示执行数据库、执行用户名和客户端地址。
查询了INFORMATION_SCHEMA的CLUSTER_SLOW_QUERY,这个语句是升级完后才出现的,升级前慢查询里没有这个语句。
这是数据库自动执行的吗?这个现象正常吗?

【附件:截图/日志/监控】


看索引名这一行,有一个tidb_background_subtask:idx_exec_id,是不是数据库的后台子任务,在做索引优化

idx_exec_id:这部分可能与索引执行有关。它可能是用于标识某个特定索引创建、修改或删除操作的标识符

:thinking:只有一个分号,然后执行计划里还有HashJoin?能发一下完整的执行计划么?
image

“;”这样的sql大概有六十多条慢sql记录,大部分记录里都没有执行计划。
看警告这一栏里,好多都是类似如下信息

Analyze use auto adjusted sample rate 0.034xxx for db.table_name,reason to use this rate is "Row count is stats_meta is smaller compared with the row count got by PD,use min(1,15000/4.385493e+06) as the sample-rate=0.034xxxxxx"

猜测应该是数据库本身的一些分析任务,执行完之后,今天下午没有再出现在慢查询里了。

看着内容像是收集统计信息的,可是我咋记得统计信息的后台任务是sql的呀就一个;着实不知道

:thinking:只能等原厂大佬来看看了。

比如这个执行计划,会不会是sql太长,然后sql里有换行,截断之后就只有换行的分号了 :yum:

去文件中看看呢

我7.5升完8.1也有这个情况

关注学习一下

这个问题很奇怪,即使是索引或者分析等数据库自身产生的任务,也不合适用这种不严谨的表现方式

就是系统自动的索引优化分析后台任务

会不会是dashboard的显示bug呢

https://github.com/pingcap/tidb/issues/52743

:flushed:原来真的是个BUG,可以蹲修复版本了。

v8.1.0版本已经确认有这个问题

显然像个bug

复制原始sql也只有一个;?

等后续修复吧2333

从“是否为内部SQL查询“的值为1,这里的信息可以知道是tidb集群内部的语句,是集群自身的问题,非业务侧SQL。

解决方法如前面大佬提到的issue链接,等官方修复后再调整下,保持关注。