openGauss学习笔记-255 openGauss性能调优-使用Plan Hint进行调优-Hint的错误、冲突及告警
Plan Hint的结果会体现在计划的变化上,可以通过explain来查看变化。
Hint中的错误不会影响语句的执行,只是不能生效,该错误会根据语句类型以不同方式提示用户。对于explain语句,hint的错误会以warning形式显示在界面上,对于非explain语句,会以debug1级别日志显示在日志中,关键字为PLANHINT。
hint的错误分为以下类型:
-
语法错误
语法规则树归约失败,会报错,指出出错的位置。
例如:hint关键字错误,leading hint或join hint指定2个表以下,其它hint未指定表等。一旦发现语法错误,则立即终止hint的解析,所以此时只有错误前面的解析完的hint有效。
例如:
leading((t1 t2)) nestloop(t1) rows(t1 t2 #10)
nestloop(t1)存在语法错误,则终止解析,可用hint只有之前解析的leading((t1 t2))。
-
语义错误
- 表不存在,存在多个,或在leading或join中出现多次,均会报语义错误。
- scanhint中的index不存在,会报语义错误。
- 另外,如果子查询提升后,同一层出现多个名称相同的表,且其中