TiDB如何监控SQL执行计划的变化

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【概述】 场景 + 问题概述

【应用框架及开发适配业务逻辑】

【背景】 做过哪些操作

【现象】 业务和数据库现象

【问题】 当前遇到的问题

【业务影响】

【TiDB 版本】

【附件】 相关日志及监控(https://metricstool.pingcap.com/)


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

每类SQL都有一个最佳的执行计划,如果一类SQL有两个执行计划,即在系统表中有两条记录,这种情况可以认为执行计划已经改变,正常情况下 这个系统表中某类SQL只有一条记录(一个执行计划),具体是哪个系统表,需要找下,具体忘记了。

CLUSTER_STATEMENTS_SUMMARY 、CLUSTER_STATEMENTS_SUMMARY_HISTORY 、 表中中相同的DIGEST或DIGEST_TEXT 代表一类SQL有多个执行计划时会有多个 PLAN_DIGEST

如果可以跟Oracle 一样查当前的执行计划就好了

目前应该除了Oracle还没有其他库做的这么细致,不过tidb能看到历史SQL的执行计划,已经很不错了