优化器GUC参数的Hint
功能描述
设置本次查询执行内生效的查询优化相关GUC参数。hint的推荐使用场景可以参考各guc参数的说明,此处不作赘述。
语法格式
set(param value)参数说明
- param表示参数名。
- value表示参数的取值。
- 目前支持使用Hint设置生效的参数有
布尔类:
enable_bitmapscan, enable_hashagg, enable_hashjoin, enable_indexscan, enable_indexonlyscan, enable_material, enable_mergejoin, enable_nestloop, enable_index_nestloop, enable_seqscan, enable_sort, enable_tidscan,partition_iterator_elimination,partition_page_estimation, var_eq_const_selectivity, enable_functional_dependency, enable_inner_unique_opt, enable_broadcast, enable_fast_query_shipping, enable_force_smp, enable_imcsscan, enable_remotegroup, enable_remotejoin, enable_remotelimit, enable_remotesort, enable_smp_dml, enable_sortgroup_agg, enable_stream_operator, enable_stream_recursive, enable_trigger_shipping
整形类:
query_dop, best_agg_plan, effective_cache_size
浮点类:
cost_weight_index, default_limit_rows, seq_page_cost, random_page_cost, cpu_tuple_cost, cpu_index_tuple_cost, cpu_operator_cost
枚举类型:
try_vector_engine_strategy, rewrite_rule
字符串类型:
node_name
说明
- 部分参数仅在特定部署形态或编译选项下可用。如果当前实例不支持某参数,使用该参数的Hint时会输出参数无法识别的告警,且不会影响查询执行的正确性。
- 设置不在白名单中的参数,参数取值不合法,或hint语法错误时,不会影响查询执行的正确性。使用explain(verbose on)执行可以看到hint解析错误的报错提示。
- GUC参数的hint只在最外层查询生效——子查询内的GUC参数hint不生效。
- 视图定义内的GUC参数hint不生效。
- CREATE TABLE ... AS ... 查询最外层的GUC参数hint可以生效。