南大通用GBase 8c使用hint对SQL进行调优

67 阅读1分钟

原文链接:www.gbase.cn/community/p…
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

Plan Hint 为用户提供了直接影响执行计划的手段,用户可以通过指定 join 顺序,join、scan 方法,指定行数等手段来进行执行计划调优,以提升查询性能。

指定形式:/+ /
支持范围:指定 join 方式、指定 join 顺序、指定行数、指定 scan 方式。

1、指定join方式

语法:

[no] nestloop | hashjoin | mergejoin (table_list)

使用示例:

2、指定join顺序

语法:

不指定内外表顺序:

leading(join_table_list)

同时指定join顺序和内外表顺序:

leading((join_table_list)) 

使用示例:

3、指定行数

语法:

rows(table_list #|+|-|* const)

表示直接使用后面的行数进行hint。

+,-,* 表示对原来估算的行数进行加、减、乘操作
const常量可以是任意非负数,支持科学计数法。

使用示例:

4、指定扫描方式

语法:

[no] <scan_type> (table [index])

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

使用示例:

原文链接:www.gbase.cn/community/p…
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。