【 TiDB 使用环境】线上
【 TiDB 版本】6.1
【遇到的问题】
表的统计信息一旦80%失效就会出现sql慢
我现在用定时器解决的但还是会有1小时的失效时间
请问各位大佬有啥好办法
【复现路径】做过哪些操作出现的问题
【问题现象及影响】
【附件】
请提供各个组件的 version 信息,如 cdc/tikv,可通过执行 cdc version/tikv-server --version 获取。
【 TiDB 使用环境】线上
【 TiDB 版本】6.1
【遇到的问题】
表的统计信息一旦80%失效就会出现sql慢
我现在用定时器解决的但还是会有1小时的失效时间
请问各位大佬有啥好办法
【复现路径】做过哪些操作出现的问题
【问题现象及影响】
【附件】
请提供各个组件的 version 信息,如 cdc/tikv,可通过执行 cdc version/tikv-server --version 获取。
中间那段升高的平均时间就是一张大表统计失效的时间
表级变化量有一个默认值%触发tidb自动对表analyze会决定统计信息的收集,执行计划的选择影响的话最好还是固定执行计划global binding
这种情况大概率就是表非常大,并且sql里面包含时间筛选条件,并且时间范围是最新的时段范围,那统计信息永远都是过期的,只能通过hint或者binding方式解决
我怎么知道现阶段用的是啥hint
SQL贴出来看一下吧。
可以先查一下执行慢的时候的执行计划,手动收集统计信息后,看一下执行快的时候的执行计划,然后对比二者的区别在哪里,有针对性的使用hint进行binding矫正
绑定执行计划或 设置自动 analyze
查慢SQL,做hint优化
嗯 绑定执行计划
该主题在最后一个回复创建后60天后自动关闭。不再允许新的回复。