GBase 8a
性能调优
文章

GBase 8a 中 常用的 Hint 类型

发表于2026-03-23 11:23:2515次浏览6个评论

Hint 是在优化器判断持续失误、且无法通过更新统计信息解决时使用的最后手段。适合使用 Hint 的典型场景有三类:一是统计信息无法及时更新(如实时写入的表统计信息来不及刷新),导致执行计划反复跑偏;二是数据分布极度不均匀,优化器的通用代价模型在特殊数据下估算失准;三是紧急情况下需要立刻稳住查询性能,来不及做深入排查。

GBase 8a 常用的 Hint 类型有以下几种:

STRAIGHT_JOIN 用于强制指定 JOIN 驱动顺序,让优化器按照 SQL 中表的书写顺序执行 JOIN,适合优化器选错驱动表的场景。

BROADCAST(表名) 用于强制将指定表以广播方式发送到所有节点,避免大表之间触发全量 shuffle,适合小表与大表 JOIN 但优化器没有自动选择广播的场景。

PARALLEL(N) 用于强制指定查询的并行度,适合在资源允许的情况下手动提升单条查询的并发执行线程数。

使用 Hint 时需要注意,Hint 只是临时干预手段,不应长期依赖。数据分布变化后原来合适的 Hint 可能反而变成性能瓶颈,因此要定期复查带有 Hint 的 SQL,在根本问题解决后及时移除。

评论

登录后才可以发表评论
nodddddd发表于 4个月前
学习
用户头像
柒柒天晴发表于 4个月前
学习
milan发表于 4个月前
学习
用户头像
山佳发表于 4个月前
学习
经纬发表于 4个月前
学习了
曾浩轩发表于 2个月前
谢谢分享