数据仓库服务 GAUSSDB(DWS)-运行倾斜的hint:注意事项

时间:2024-12-30 16:18:23

注意事项

  • skew hint仅在需要重分布且指定的倾斜信息与查询执行过程中的重分布信息相匹配时才会被使用。
  • skew hint受GUC参数skew_option限制,如果参数处于关闭状态,则无法进行skew hint倾斜调优。
  • skew hint目前仅处理普通表和子查询类型的表关系,支持基表hint、子查询hint、with as子句hint。对于子查询,无论提升与否都支持在skew hint中使用,这点与其它hint不一样。
  • 对于倾斜表,如果定义了别名,则在hint中必须使用别名。
  • 对于倾斜列,在不产生歧义的情况下,可以使用原名也可以使用别名。skew hint的column不支持表达式,如果需要指定采用分布键为表达式的重分布存在倾斜,需要将重分布键指定为新的列,以新的列进行hint。
  • 对于倾斜值,个数需为列数的整数倍并按列的顺序进行组合,组合的个数不能超过10个。如果各倾斜列的倾斜值的个数不一样,为了满足按列组合,值可以重复指定。如,表t1的c1和c2存在倾斜,c1列的倾斜值只有a1,而c2列的倾斜有b1和b2,则skew hint如下:skew(t1 (c1 c2) ((a1 b1)(a1 b2)))。例中(a1 b1)为一个值组合,NULL可以作为倾斜值出现,每个hint中的值组合不超过十个, 且需为列的整数倍。
  • 在Join的重分布优化中,skew hint中的value不可缺省,在HashAgg中可以缺省。
  • 对于表、列、值中若指定多个,则同类间需以空格分离。
  • 对于倾斜值,不支持在hint中进行类型强转;对于string类型,需要使用单引号。
support.huaweicloud.com/devg-910-dws/dws_04_0462.html