默认安装,同样的sql,有时快有时慢

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
7台配置是16核32G

【概述】 场景 + 问题概述
默认安装,同样的sql,有时快有时慢
【背景】 做过哪些操作

【现象】 业务和数据库现象
默认安装,同样的sql,有时快有时慢
【问题】 当前遇到的问题

【业务影响】
性能不稳定,生产环境有时快有时慢
【TiDB 版本】
5.3
【应用软件及版本】

【附件】 相关日志及配置信息

  • TiUP Cluster Display 信息
  • TiUP CLuster Edit config 信息

监控(https://metricstool.pingcap.com/)

  • TiDB-Overview Grafana监控
  • TiDB Grafana 监控
  • TiKV Grafana 监控
  • PD Grafana 监控
  • 对应模块日志(包含问题前后 1 小时日志)

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

1 个赞

看下执行计划。

1 个赞

这个不太好说 每次执行的时候 看看执行的路径是什么 看看执行过程是不是一样的

1 个赞

提供下sql 表结构 实际执行计划

1 个赞

你好。可以从以下方面排查下:

  1. 慢的时候,集群整体负载较正常情况如何?
  2. 如果负载没变化,可以对比两种情况下的实际执行计划,看看有什么异常的。
  3. 检查下两种情况的相关表健康信息。
2 个赞

慢的情况 可以按照下面的思路
1、整体都慢,看看整体的负载,排查节点问题
2、看explan 是否走预期的索引,索引是否合适 ,,优化sql或绑定执行计划

3 个赞

时快时慢这种可能是受其他SQL影响,是否能查到同时间是否有耗时高,耗CPU的SQL

需要关注的地方:执行计划、扫描行数、系统负载,如果扫描行数很多,那么优化器可能在不同情况下选择不同的执行计划,因为不同路径开销都可能很大,有时候判断会波动。最后注意一下系统负载,如果执行计划与扫描行数都没变化,需要看看是不是系统有些时候在执行重的任务,负载过高导致的慢。

1 个赞

除非两个查询当时的负载不一样。按说TiDB的查询计划应该会被缓存的,不会为同一SQL每次执行时都生成执行计划。

可以查询系统负载情况,sql执行计划信息。

执行计划应该是不一样,
检查一下相关的统计信息

这种有时快有时慢应该得看当时的系统负载,可能时候其他SQL的影响。

该主题在最后一个回复创建后60天后自动关闭。不再允许新的回复。