GBase 8c
性能调优
文章

GBase8c数据库使用hint调整SQL执行计划

发表于2026-03-31 11:57:3963次浏览2个评论

1、指定Join方式

语法:

[no] nestloop | hashjoin | mergejoin (table_list) no 表示不使用hint的join方式。 支持常用的join,包括Hash Join、Nested Join 、Merge Join。 

2、指定扫描方式 

语法:

[no] <scan_type> (table [index]) no表示不使用hint的scan方式。 <scan_type> 支持常用的 tablescan、indexscan、indexonlyscan。 table表示hint指定的表,只能指定一个表,如果表存在别名应优先使用别名进行hint。 

3、指定join顺序 

语法:

不指定内外表顺序 leading(join_table_list) 同时指定join顺序和内外表顺序 leading((join_table_list))  

4、指定行数

语法:

rows(table_list #|+|-|* const) # 表示直接使用后面的行数进行hint。 +,-,* 表示对原来估算的行数进行加、减、乘操作 const常量可以是任意非负数,支持科学计数法。 

5、指定子查询不扩展 

语法:

no_expand 数据库在对查询进行逻辑优化时通常会将可以提升的子查询提升到上层来避免嵌套执行,通过此 hint 可以使子查询不扩展。 大多数情况下不建议使用此hint。 

评论

登录后才可以发表评论
GBase用户51820发表于 2个月前
三人行必有我师
GBase用户47954发表于 1个月前
感谢作者的精彩分享!