同样的sql在DBeaver里执行的sql计划和java生成的执行计划不一致

【TiDB 使用环境】生产环境
【TiDB 版本】7.1.1
【操作系统】
【部署方式】云上部署(什么云)/机器部署(什么机器配置、什么硬盘)
【集群数据量】
【集群节点数】
【问题复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】同样的sql再DBeaver里执行的sql计划和java生成的执行计划不一致
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【复制黏贴 ERROR 报错的日志】
【其他附件:截图/日志/监控】


dbeaver里走mpp[tiflash]
java客户端走cop[tiflash]

tidb_enable_prepared_plan_cache参数也设置为OFF了

java中的执行计划是怎么看的

tidb监控到慢sql里看的

dbeaver里用explain analyze试试

就是用explain analyze试的

方便发一下两个执行计划吗

好的,稍等


你看看查询计划是否来自绑定、使用的统计信息 两种执行方式这两个地方显示的是一样的吗?


这个是dbeaver的,目前又走了cop[tiflash]

dbevar里执行explain analyze好像看不到这个信息


这个导致的?分区表没global stats

看看tidb_partition_prune_mode这个参数的值是什么

是dynamic,动态裁剪的,然后有提前预分区的。这就导致global stats没有生成?

可能是预分区里的数据没有及时更新统计信息?
手动analyze table试试

460亿数据,提前建的未来时间的分区,没有统计信息的。

show stats_meta where table_name like xxxx;看看


统计信息了有了,好像刚更新的


还是一样不走mpp