【TiDB 版本】8.5.1
analyze后执行计划评估行数也不准确,目前有几张表每天会导出然后在import到日备份表里,导入完成后(数据无变化)进行analyze。目前发现有一张表(tf_b_writeofflog_d_after_mon0_day_XXX)虽然analyze了但是评估不准确,导致执行计划使用了broadcast分发,然后tiflash oom,手工再次analyze后正确。 目前看了23号 25号的表 都是同样的问题
手工analyze前:评估139万
手工analyze后:评估比较接近实际数量11亿
导入后的analyze, 使用包含大写的表名
手工的analyze,使用全小写
SQL使用的小写:
explain SELECT COUNT(*) from drecv.tf_b_writeofflog_d_after_mon0_day_24 d where d.WRITEOFF_ID not in (
select w.WRITEOFF_ID from drecv.tf_b_writeofflog_d_after_mon0_day_24 w ,drecv.TS_B_BILL_AFTER_MON0_day_24 b
where w.BILL_ID =b.BILL_ID and w.USER_ID =w.USER_ID and w.ACCT_ID =b.ACCT_ID and w.CYCLE_ID =b.CYCLE_ID
and w.INTEGRATE_ITEM_CODE =b.INTEGRATE_ITEM_CODE and w.calc_cycle_id =b.calc_cycle_id and w.calc_cycle_id =202506
) ;