materialize_statistics_on_insert
materialize_statistics_on_insert_max_table_size 的表会受此设置影响。
materialize_statistics_on_insert_max_table_size
materialize_statistics_on_insert) 。该规则按写入块而非 INSERT 生效:一次 INSERT 会按分区拆分为多个块,每个分区一个块 (对于流式插入,还会拆分为多个块) 。由于正在执行的 INSERT 所产生的 parts 尚未活跃,每个块都会根据已活跃 parts 的大小进行检查。因此,向空表执行一次批量加载时,即使所有 parts 的总大小超过阈值,仍可为其全部构建统计信息;该限制会从后续插入开始生效。使用未压缩块大小 (在写入 part 前无法获知压缩后的大小) 会使检查刻意保持保守,偏差最多为一个块的大小。这样既能使小型维度表的统计信息保持最新状态——这对基于成本的 join 重排序至关重要——又能避免大型事实表每次插入时的额外开销 (其统计信息会在合并期间构建) 。0 表示不限制大小。