云数据库 GaussDB-优化器GUC参数的Hint:参数说明
参数说明
- @queryblock 见指定Hint所处的查询块Queryblock章节,可省略,表示在当前查询块生效,该hint只在指定为最外层的queryblock时才会生效。
- param:表示参数名。
- value:表示参数的取值。
- 目前支持使用Hint设置生效的参数有:
- 布尔类:
enable_bitmapscan、enable_hashagg、enable_hashjoin、enable_indexscan、enable_indexonlyscan、enable_gsiscan、enable_material、enable_mergejoin、enable_nestloop、enable_index_nestloop、enable_seqscan、enable_sort、enable_tidscan、enable_stream_operator、enable_stream_recursive、enable_broadcast、enable_fast_query_shipping、enable_trigger_shipping、enable_remotejoin、enable_remotegroup、enable_remotelimit、enable_remotesort、enable_inner_unique_opt
- 整型类:
- 浮点类:
cost_weight_index、default_limit_rows、seq_page_cost、random_page_cost、cpu_tuple_cost、cpu_index_tuple_cost、cpu_operator_cost、effective_cache_size
- 字符串类:
通过设置node_name可以指定当前的sql下发到node_name对应的dn上去执行。
示例:
select /*+ set(node_name datanode1) */ from table_name;
其中,datanode1是从 pgxc_node 系统表里查询出来的数据节点的名称(不用加引号),table_name 是表名。该查询表示直接去datanode1上执行查询。
- node_name只支持在select语句里设置,如果在其他语句里设置将会不生效。
- node_name只支持设置data node名字,不支持设置coodninator名字。
- node_name不支持通过SET语句进行修改,只能用在plan hint里。
- node_name不支持通过gs_guc进行修改。
- node_name仅支持简单查询语句,不支持带union,union all子查询,多表关联等复杂查询语句。
- 支持普通用户执行。
- 不支持与行级访问控制同时使用,同时使用会报错。
- 布尔类:

- 设置不在白名单中的参数,参数取值不合法,或hint语法错误时,不会影响查询执行的正确性。使用explain(verbose on)执行可以看到hint解析错误的报错提示。
- GUC参数的hint只在最外层查询生效,子查询内的GUC参数hint不生效。
- 视图定义内的GUC参数hint不生效。
- CREATE TABLE ... AS ... 查询最外层的GUC参数hint可以生效。
- GaussDB内核_GaussDB数据库内核_高斯数据库内核_华为云
- GaussDB华为部署_高斯数据库_高斯数据库华为部署_华为云
- TaurusDB并行查询_TaurusDB内核_TaurusDB并行执行_PQ
- GaussDB查版本命令_GaussDB命令参考_高斯数据库查版本命令-华为云
- GaussDB数据库云备份_华为GaussDB_高斯数据库云备份
- GaussDB工具_gaussdb怎么读_高斯数据库工具_华为云
- GaussDB TP_GaussDB和MySQL区别_高斯数据库TP_华为云
- 时序数据库_GeminiDB Influx 接口场景_免费_数据库资源_实时数据库和时序数据库
- 免费时序数据库_时序数据库influxdb场景_数据库资源免费领取_实时数据库
- 时序数据库_云数据库GeminiDB Influx接口