灌水唠嗑区
其他
问答

执行 ANALYZE TABLE 之后,统计信息会立刻生效吗?对正在运行的查询有影响吗?

发表于2026-03-23 11:18:158次浏览4个评论

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

【GBase版本】:

【操作系统】:

【CPU】:

【问题描述】*:执行 ANALYZE TABLE 之后,统计信息会立刻生效吗?对正在运行的查询有影响吗?

评论

登录后才可以发表评论
nodddddd发表于 4个月前
ANALYZE TABLE 执行完成后,统计信息会立刻更新到系统元数据中,后续新发起的查询在生成执行计划时就会使用新的统计信息,无需重启数据库或做任何额外操作。
对于已经在执行中的查询不会有任何影响,正在运行的 SQL 使用的是它开始执行时生成的执行计划,不会因为 ANALYZE 而中断或改变。
需要注意的是,ANALYZE TABLE 期间会对目标表加读锁,如果在业务高峰期对大表执行,可能会阻塞同时进来的写入请求。因此建议安排在业务低峰期(如凌晨2~4点)执行,或者对分区表使用 ALTER TABLE t ANALYZE PARTITION p_xxx 只更新指定分区,减少锁定范围和执行时间。
GBase用户21182发表于 4个月前
@nodddddd:在理
milan发表于 4个月前
学习
经纬发表于 4个月前
一、核心结论(一句话版)
ANALYZE TABLE 执行后,统计信息不会立刻对所有正在运行的查询生效
对正在运行的查询没有任何影响
只有新生成的执行计划、新打开的会话、或缓存失效后才会使用新统计信息