GBase 8c
性能调优
文章

什么是Plan Hint?它的主要作用是什么?目前支持指定哪几种Join方式?

发表于2026-03-10 11:08:476次浏览2个评论

1. 什么是Plan Hint?

Plan Hint(执行计划提示)是GBase 8c数据库为用户提供的一种直接影响和干预SQL语句执行计划生成的机制。它通过在SQL语句中添加特定的注释语法(/*+ hint_content */),将优化建议传递给查询优化器。

2. 主要作用是什么?

Plan Hint的主要作用是进行执行计划调优,以提升查询性能。当数据库优化器自动选择的执行计划不是最优时(例如,由于统计信息不准确或代价模型估算偏差),用户可以通过Hint来:

  • 指定表的连接方式(Join Method)。
  • 指定表的连接顺序(Join Order)。
  • 指定表的扫描方式(Scan Method)。
  • 指定中间结果集的行数估计。

     

  • 干预子查询的处理方式(如是否扩展)。
  • 在PBE(Parse-Bind-Execute)模式下,强制选择Custom Plan或Generic Plan。

     

3. 目前支持指定哪几种Join方式?

Plan Hint目前支持指定以下三种常用的Join方式:

  • Hash Join
  • Merge Join
  • Nested Loop Join(文档中也写作Nested Join)

重要说明:Plan Hint暂不支持Semi Join(半连接)方式。

语法示例/*+ hashjoin(t1 t2) *//*+ no mergejoin(t1 t2) */(其中no表示不使用该方式)。

评论

登录后才可以发表评论
GBase用户47954发表于 4个月前
感谢作者的精彩分享!
GBase用户51884发表于 2个月前
加油