GBase 8a
运维管理
问答

GROUP BY 查询报 Memory limit exceeded。长期优化应如何补充统计信息?

发表于2026-04-29 08:53:1318次浏览11个评论

GROUP BY 查询报 Memory limit exceeded。长期优化应如何补充统计信息?

评论

登录后才可以发表评论
GBase用户21182发表于 3个月前
GROUP BY 爆内存,90% 不是真内存不够
GBase用户21182发表于 3个月前
通常是统计信息不准 → 优化器低估行数 → 分配的内存太小 → 运行时爆掉。
GBase用户21182发表于 3个月前
如果 GROUP BY 某个值特别多(比如 1000 万条都是同一个值)--> 统计信息再准也会爆内存。
GBase用户21182发表于 3个月前
直方图能让优化器知道数据倾斜,提前分配更大内存。
GBase用户21182发表于 3个月前
set gbase_memory_limit = '2G';
GBase用户21182发表于 3个月前
GROUP BY 爆内存的长期优化 = 3 件事:
定期 ANALYZE 表(每天自动跑)
对 GROUP BY 字段做列级统计 + 直方图
开启数据库自动统计信息
曾云林发表于 2个月前
1
曾云林发表于 2个月前
2
曾云林发表于 2个月前
3
曾云林发表于 2个月前
4
曾云林发表于 2个月前
5