华为云用户手册

  • fast_obs_tablesize_method 参数说明:设置快速计算列存v3和v3 hstore_opt表大小的方式。该参数仅9.1.0.100及以上集群版本支持。 参数类型:USERSET 取值范围:枚举型 0:通过list obs文件的方式计算表大小。 1:wlm后台统计的方式,通过pg_relfilenode_size计算表大小。 2:通过cudesc的每个文件的最大偏移和近似估算表大小。 默认值:2
  • use_workload_manager 参数说明:是否开启资源管理功能。该参数需在CN和DN同时应用。 参数类型:SIGHUP 取值范围:布尔型 on表示打开资源管理。 off表示关闭资源管理。 当使用GUC参数设置来修改参数值时,新参数值只能对更改操作执行后启动的线程生效。此外,对于后台线程以及线程复用执行的新作业,该参数值的改动不会生效。如果希望这类线程即时识别参数变化,可以使用kill session或重启节点的方式来实现。 use_workload_manager参数由off变为on状态后,资源管理视图变为可用,并且可以查询off状态下统计的存储资源使用情况。若存在些许误差的情况下,需要矫正用户使用的存储资源,可数据库中执行如下命令,在执行该命令的过程中,如果对表中插入数据,可能会出现统计不够准确的情况: 1 select gs_wlm_readjust_user_space(0); 默认值:on
  • 输出性能统计日志 参数说明:对每条查询,以下4个选项控制在服务器日志里记录相应模块的性能统计数据,具体含义如下: log_parser_stats控制在服务器日志里记录解析器的性能统计数据。 log_planner_stats控制在服务器日志里记录查询优化器的性能统计数据。 log_executor_stats控制在服务器日志里记录执行器的性能统计数据。 log_statement_stats控制在服务器日志里记录整个语句的性能统计数据。 这些参数只能辅助管理员进行粗略分析,类似Linux中的操作系统工具getrusage() 。 参数类型:SUSET log_statement_stats记录总的语句统计数据,而其他参数只记录针对每个模块的统计数据。 log_statement_stats不能和其他任何针对每个模块统计的选项一起打开。 取值范围:布尔型 on表示开启记录性能统计数据的功能。 off表示关闭记录性能统计数据的功能。 默认值:off
  • track_sql_count 参数说明:控制对每个会话中当前正在执行的SELECT、INSERT、UPDATE、DELETE、MERGE INTO语句是否进行计数统计,对SELECT、INSERT、UPDATE、DELETE语句的响应时间进行统计,以及对DDL、DML、DCL语句进行计数的统计。 参数类型:SUSET 取值范围:布尔型 on表示开启统计功能。 off表示关闭统计功能。 默认值:on track_sql_count参数受track_activities约束: track_activities开启而track_sql_count关闭时,如果查询了gs_sql_count、pgxc_sql_count、gs_workload_sql_count、pgxc_workload_sql_count、global_workload_sql_count、gs_workload_sql_elapse_time、pgxc_workload_sql_elapse_time、或global_workload_sql_elapse_time视图,将会有 LOG 提示track_sql_count是关闭的。 track_activities和track_sql_count同时关闭,那么此时将会有两条LOG,分别提示track_activities是关闭的和track_sql_count是关闭的。 track_activities关闭而track_sql_count开启,此时将仅有LOG提示track_activities是关闭。 当参数关闭时,查询视图的结果为0行。
  • instr_unique_sql_count 参数说明:控制是否收集整个集群的Unique SQL以及收集数量限制。 参数类型:SIGHUP 取值范围:整型,0~INT_MAX 值为0时,表示不收集Unique SQL统计信息。 值大于0时,在CN节点上,将会控制收集的Unique SQL数量不超过该设置值。当收集数量达到限制时,不再收集新的Unique SQL,此时可通过reload调大设置值,继续收集新的Unique SQL。 默认值:0 如果新设置值小于原设置值,将会清空对应CN节点已收集的Unique SQL统计信息。需特别注意该清理操作将由资源管理后台线程完成,若GUC参数use_workload_manager为off时清理操作可能失败,可直接使用函数reset_instr_unique_sql进行清理。
  • instr_unique_sql_timeout 参数说明:控制Unique SQL的存在时间。StatCollector后台线程每小时对所有的Unique SQL做一次检查,如果发现某个Unique SQL超过instr_unique_sql_timeout小时未被执行,则将其删除。(该参数在8.1.2及以上版本支持。) 参数类型:SIGHUP 取值范围:整型,0~INT_MAX,单位为小时。 值为0时,表示不删除过期的Unique SQL。 值大于0时,发现超过instr_unique_sql_timeout小时未执行Unique SQL则删除。 默认值:24
  • enable_parallel_analyze 参数说明:控制内外表analyze采样时是否使用并行的采样方式。该参数仅9.1.0及以上集群版本支持。 参数类型:USERSET 取值范围:布尔型 true表示内外表analyze采样时使用并行的采样方式。 false表示内外表analyze采样时不使用并行的采样方式。 默认值:true 开启enable_parallel_analyze的情况下,对外表进行analyze时,尽量避免对目标外表列增加NOT NULL约束条件,防止外表数据源变更时约束失效导致analyze失败;同时目前并行采样不支持物化视图;当发生由于此类原因导致的analyze失败时,可以设置该参数为false,成功执行analyze。 目前并行采样仅支持普通列存内表analyze,当内表使用hstore/hstore_opt或声明为复制表时此优化不会生效。 目前并行采样仅支持parquet/orc格式存储的外表,当外表为其他格式时此优化不会生效。
  • enable_track_wait_event 参数说明:控制是否对各类等待事件的发生次数、失败次数、持续时间、最大、最小和平均等待时间等信息进行统计。 参数类型:SIGHUP 取值范围:布尔型 on表示开启统计功能。 off表示关闭统计功能。 默认值:off enable_track_wait_event参数受track_activities约束,如果track_activities关闭,即使开启enable_track_wait_event也不启用相关功能。 track_activities或enable_track_wait_event关闭时,如果查询get_instr_wait_event函数、gs_wait_events视图或pgxc_wait_events视图将会提示GUC参数关闭,查询结果为0行。 在集群运行过程中关闭track_activities或enable_track_wait_event, GaussDB (DWS)不再对等待事件相关信息进行统计,但已统计记录的数据不受影响。
  • wdr_snapshot_retention_days 参数说明:设置性能快照数据保留的最大天数。 参数类型:SIGHUP 取值范围:整型,1~15,单位为天。 默认值:8 开启enable_wdr_snapshot的情况下,保存wdr_snapshot_retention_days天数的快照数据会被自动清除。 该参数取值应与可用磁盘空间相对应,取值越大,需要的磁盘空间越大。 对该参数的修改不会立即生效,等到下一次自动创建快照时才会清除过期快照数据。
  • enable_wdr_snapshot 参数说明:控制是否启用性能视图快照功能。开启后,GaussDB(DWS)会定期对部分系统性能视图创建快照并持久化保存,并接受手动创建快照请求。 参数类型:SIGHUP 取值范围:布尔型 on表示开启快照功能。 off表示关闭快照功能。 默认值:off 如果enable_wdr_snapshot参数关闭,执行create_wdr_snapshot函数手动创建视图会提示GUC参数未打开。 如果在快照的过程中修改enable_wdr_snapshot参数,正在创建的快照不受影响,下次定期或手动创建快照时生效。
  • logging_module 参数说明:用于设置或者显示模块日志在服务端的可输出性。该参数属于会话级参数,不建议通过gs_guc工具来设置。 参数类型:USERSET 取值范围:字符串 默认值:所有模块日志在服务端是不输出的,可由SHOW logging_module查看。 设置方法:首先,可以通过SHOW logging_module来查看哪些模块是支持可控制的。例如,查询输出结果为: 1 2 3 4 5 show logging_module; logging_module ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ALL,on(),off(DFS,GUC,HDFS,ORC,SLRU,MEM_CTL,AUTOVAC,ANALYZE,CACHE,ADIO,SSL,GDS,TBLSPC,WLM,SPACE,OBS,EXECUTOR,VEC_EXECUTOR,STREAM,LLVM,OPT,OPT_REWRITE,OPT_JOIN,OPT_AGG,OPT_SUBPLAN,OPT_SETOP,OPT_CARD,OPT_SKEW,SMP,UDF,COOP_ANALYZE,WLMCP,ACCELERATE,PLANHINT,PARQUET,CARBONDATA,SNAPSHOT,XACT,HANDLE,CLOG,TQUAL,EC,REMOTE,CN_RETRY,PLSQL,TEXTSEARCH,SEQ,INSTR,COMM_IPC,COMM_PA RAM , CS TORE,JOB,STREAMPOOL,STREAM_CTESCAN) (1 row) 支持可控制的模块使用大写来标识,特殊标识ALL用于对所有模块日志进行设置。可以使用on/off来控制模块日志的输出。设置SSL模块日志为可输出,使用如下命令: 1 2 3 4 5 6 7 8 set logging_module='on(SSL)'; SET show logging_module; logging_module ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ALL,on(SSL),off(DFS,GUC,HDFS,ORC,SLRU,MEM_CTL,AUTOVAC,ANALYZE,CACHE,ADIO,GDS,TBLSPC,WLM,SPACE,OBS,EXECUTOR,VEC_EXECUTOR,STREAM,LLVM,OPT,OPT_REWRITE,OPT_JOIN,OPT_AGG,OPT_SUBPLAN,OPT_SETOP,OPT_CARD,OPT_SKEW,SMP,UDF,COOP_ANALYZE,WLMCP,A CCELERATE,PLANHINT,PARQUET,CARBONDATA,SNAPSHOT,XACT,HANDLE,CLOG,TQUAL,EC,REMOTE,CN_RETRY,PLSQL,TEXTSEARCH,SEQ,INSTR,COMM_IPC,COMM_PARAM,CSTORE,JOB,STREAMPOOL,STREAM_CTESCAN) (1 row) 可以看到模块SSL的日志输出被打开。 ALL标识是相当于一个快捷操作,即对所有模块的日志可输出进行开启或关闭。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 set logging_module='off(ALL)'; SET show logging_module; logging_module ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ALL,on(),off(DFS,GUC,HDFS,ORC,SLRU,MEM_CTL,AUTOVAC,ANALYZE,CACHE,ADIO,SSL,GDS,TBLSPC,WLM,SPACE,OBS,EXECUTOR,VEC_EXECUTOR,STREAM,LLVM,OPT,OPT_REWRITE,OPT_JOIN,OPT_AGG,OPT_SUBPLAN,OPT_SETOP,OPT_CARD,OPT_SKEW,SMP,UDF,COOP_ANALYZE,WLMCP, ACCELERATE,PLANHINT,PARQUET,CARBONDATA,SNAPSHOT,XACT,HANDLE,CLOG,TQUAL,EC,REMOTE,CN_RETRY,PLSQL,TEXTSEARCH,SEQ,INSTR,COMM_IPC,COMM_PARAM,CSTORE,JOB,STREAMPOOL,STREAM_CTESCAN) (1 row) set logging_module='on(ALL)'; SET show logging_module; logging_module ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ALL,on(DFS,GUC,HDFS,ORC,SLRU,MEM_CTL,AUTOVAC,ANALYZE,CACHE,ADIO,SSL,GDS,TBLSPC,WLM,SPACE,OBS,EXECUTOR,VEC_EXECUTOR,STREAM,LLVM,OPT,OPT_REWRITE,OPT_JOIN,OPT_AGG,OPT_SUBPLAN,OPT_SETOP,OPT_CARD,OPT_SKEW,SMP,UDF,COOP_ANALYZE,WLMCP,ACCELE RATE,PLANHINT,PARQUET,CARBONDATA,SNAPSHOT,XACT,HANDLE,CLOG,TQUAL,EC,REMOTE,CN_RETRY,PLSQL,TEXTSEARCH,SEQ,INSTR,COMM_IPC,COMM_PARAM,CSTORE,JOB,STREAMPOOL,STREAM_CTESCAN),off() (1 row) 所有模块中,COMM_IPC必须显式的打开/开闭,执行以下命令都可以将该模块的日志打开: 1 2 3 4 set logging_module='on(ALL)'; SET set logging_module='on(COMM_IPC)'; SET 设置成功后,COMM_IPC模块日志不会自动关闭,关闭COMM_IPC模块的日志,必须手动执行关闭命令,以下两条命令都可以将该模块日志关闭: 1 2 3 4 set logging_module='off(ALL)'; SET set logging_module='off(COMM_IPC)'; SET 依赖关系:该参数依赖于log_min_messages参数的设置。
  • log_error_verbosity 参数说明:控制服务器日志中每条记录的消息写入的详细度。 参数类型:SUSET 取值范围:枚举类型 terse输出不包括DETAIL、HINT、QUERY及CONTEXT错误信息的记录。 verbose输出包括SQLSTATE错误代码 、源代码文件名、函数名及产生错误所在的行号。 default输出包括DETAIL、HINT、QUERY及CONTEXT错误信息的记录,不包括SQLSTATE错误代码 、源代码文件名、函数名及产生错误所在的行号。 默认值:default
  • debug_print_plan 参数说明:用于控制打印查询执行结果。 参数类型:SIGHUP 取值范围:布尔型 on表示开启打印结果的功能。 off表示关闭打印结果的功能。 默认值:off 只有当日志的级别为log及以上时,debug_print_parse、debug_print_rewritten和debug_print_plan的调试信息才会输出。当这些选项打开时,调试信息只会记录在服务器的日志中,而不会输出到客户端的日志中。通过设置client_min_messages和log_min_messages参数可以改变日志级别。 在打开debug_print_plan开关的情况下需尽量避免调用gs_encrypt_aes128及gs_decrypt_aes128函数,避免敏感参数信息在日志中泄露的风险。同时建议用户在打开debug_print_plan开关生成的日志中对gs_encrypt_aes128及gs_decrypt_aes128函数的参数信息进行过滤后再提供给外部维护人员定位,日志使用完成后请及时删除。
  • log_statement 参数说明:控制记录SQL语句。对于使用扩展查询协议的客户端,记录接收到执行消息的事件和绑定参数的值(内置单引号要双写)。 参数类型:SUSET 即使log_statement设置为all,包含简单语法错误的语句也不会被记录,因为仅在完成基本的语法分析并确定了语句类型之后才记录日志。在使用扩展查询协议的情况下,在执行阶段之前(语法分析或规划阶段)同样不会记录。将log_min_error_statement设为ERROR或更低才能记录这些语句。 取值范围:枚举类型 none表示不记录语句。 ddl表示记录所有的数据定义语句,比如CREATE、ALTER和DROP语句。 mod表示记录所有DDL语句,还包括数据修改语句INSERT、UPDATE、DELETE、TRUNCATE和COPY FROM 。 all表示记录所有语句,PREPARE、EXECUTE和EXPLAIN ANALYZE语句也同样被记录。 默认值:none
  • log_duration 参数说明:控制记录每个已完成SQL语句的执行时间。对使用扩展查询协议的客户端、会记录语法分析、绑定和执行每一步所花费的时间。 参数类型:SUSET 取值范围:布尔型 设置为off ,该选项与log_min_duration_statement的不同之处在于log_min_duration_statement强制记录查询文本。 设置为on并且log_min_duration_statement大于零,记录所有持续时间,但是仅记录超过阈值的语句。这可用于在高负载情况下搜集统计信息。 默认值:on
  • log_min_error_statement 参数说明:控制在服务器日志中记录错误的SQL语句。 参数类型:SUSET 取值范围:枚举类型,有效值有debug5、debug4、debug3、debug2、debug1、info、log、notice、warning、error、fatal、panic。参数的详细信息请参见表1。 设置为error ,表示导致错误、日志消息、致命错误、panic的语句都将被记录。 设置为panic,表示关闭此特性。 默认值:error
  • profile_logging_module 参数说明:用于设置记录性能日志的类型,使用该参数时需确保plog_merge_age参数值非0。该参数属于会话级参数,不建议通过gs_guc工具来设置。仅8.1.3及以上集群版本支持。 参数类型:USERSET 取值范围:字符串 默认值:默认打开OBS、HADOOP、REMOTE_DATANODE,关闭MD。可由SHOW profile_logging_module查看。 设置方法:首先,可以通过SHOW profile_logging_module来查看哪些模块是支持可控制的。例如,查询输出结果为: 1 2 3 4 show profile_logging_module; profile_logging_module -------------------------------------------- ALL,on(OBS,HADOOP,REMOTE_DATANODE),off(MD)(1 row) 打开MD性能日志,并查看设置结果。其中ALL标识是相当于一个快捷操作,即对所有模块的日志可输出进行开启或关闭。 1 2 3 4 5 6 7 set profile_logging_module='on(md)'; SET show profile_logging_module; profile_logging_module --------------------------------------------- ALL,on(MD,OBS,HADOOP,REMOTE_DATANODE),off()(1 row)
  • log_min_duration_statement 参数说明:当某条语句的持续时间大于或者等于特定的毫秒数时,log_min_duration_statement参数用于控制记录每条完成语句的持续时间。 设置log_min_duration_statement可以很方便地跟踪需要优化的查询语句。对于使用扩展查询协议的客户端,语法分析、绑定、执行每一步所花时间被独立记录。 参数类型:SUSET 当此选项与log_statement同时使用时,已经被log_statement记录的语句文本不会被重复记录。在没有使用syslog情况下,推荐使用log_line_prefix记录PID或会话ID,方便将当前语句消息连接到最后的持续时间消息。 取值范围:整型,-1 ~ INT_MAX,单位为毫秒。 设置为250,所有运行时间不短于250ms的SQL语句都会被记录。 设置为0,输出所有语句的持续时间。 设置为-1,关闭此功能。 默认值:30min
  • backtrace_min_messages 参数说明:控制当产生该设置参数级别相等或更高级别的信息时,会打印函数的堆栈信息到服务器日志文件中。 参数类型:SUSET 该参数作为客户现场问题定位手段使用,且由于频繁的打印函数栈会对系统的开销及稳定性有一定的影响,因此如果需要进行问题定位时,建议避免将backtrace_min_messages的值设置为fatal及panic以外的级别。 取值范围:枚举类型 有效值有debug5、debug4、debug3、debug2、debug1、info、log、notice、warning、error、fatal、panic。参数的详细信息请参见表1。 默认值:panic
  • log_min_messages 参数说明:控制写到服务器日志文件中的消息级别。每个级别都包含排在它后面的所有级别中的信息。级别越低,服务器运行日志中记录的消息就越少。 参数类型:SUSET 当client_min_messages和log_min_messages取相同值log时所代表的消息级别不同。 取值范围:枚举类型,有效值有debug5、debug4、debug3、debug2、debug1、info、log、notice、warning、error、fatal、panic。参数的详细信息请参见表1。 默认值:warning
  • client_min_messages 参数说明:控制发送到客户端的消息级别。每个级别都包含排在它后面的所有级别中的信息。级别越低,发送给客户端的消息就越少。 参数类型:USERSET 当client_min_messages和log_min_messages取相同值时,其值所代表的级别不同。 取值范围:枚举类型,有效值有debug5、debug4、debug3、debug2、debug1、info、log、notice、warning、error。参数的详细信息请参见表1。 默认值:notice
  • enable_sonic_hashagg 参数说明:标识是否依据规则约束使用基于面向列的hash表设计的Hash Agg算子。 参数类型:USERSET 取值范围:布尔型 on表示在满足约束条件时使用基于面向列的hash表设计的Hash Agg算子。 off表示不使用面向列的hash表设计的Hash Agg算子。 在开启enable_sonic_hashagg,且查询达到约束条件使用基于面向列的hash表设计的Hash Agg算子时,查询对应的Hash Agg算子内存使用通常可获得精简。但对于代码生成技术可获得显著性能提升的场景(enable_codegen打开后获得较大性能提升),对应的算子查询性能可能会出现劣化。 开启enable_sonic_hashagg,且查询达到约束条件使用基于面向列的hash表设计的Hash Agg算子时,在Explain Analyze/Performance的执行计划和执行信息中,算子显示为“Sonic Hash Aggregation”,而未达到该约束条件时,算子名称将显示为“Hash Aggregation”。 默认值:on
  • hashjoin_spill_strategy 参数说明:选择hashjoin下盘策略。(该参数8.1.2及以上版本支持) 参数类型:USERSET 取值范围:整型,0~6 0:当内表较大且无法在数据库可用内存放下所有数据时,会将数据划分成不同的子分区,直到多次划分后无法分开且仍无法在内存放下所有数据时,尝试外表是否可以放到可用内存中建立哈希表。若外表可以放到可用内存中建立哈希表,则执行HashJoin。反之,则执行NestLoop。 1:当内表较大且无法在数据库可用内存放下所有数据时,会将数据划分成不同的子分区,直到多次划分后无法分开且仍无法在内存放下所有数据时,尝试外表是否可以放到可用内存中建立哈希表。如果内外表均很大,强制执行HashJoin。 2:当内表较大,并且多次下盘无法分开时,强制执行HashJoin。 3:当内表较大,并且多次下盘无法分开时,尝试外表是否可以放到数据库可用内存建立哈希表。如果内外表均很大,则报错。 4:当内表较大,并且多次下盘无法分开时,则报错。 5:当内表较大且无法在数据库可用内存放下所有数据时,如果外表数据可以放到内存中,则使用外表建立哈希表执行HashJoin。如果外表数据无法存放到内存中,则将数据划分成不同的子分区,直到内外表多次划分均无法分开时,执行NestLoop。 6:当内表较大且无法在数据库可用内存放下所有数据时,如果外表数据可以放到内存中,则使用外表建立哈希表执行HashJoin。如果外表数据无法存放到内存中,则将数据划分成不同的子分区,直到内外表多次划分均无法分开时,强制执行HashJoin。 此参数只对向量化HashJoin生效。 对于数据distinct值很小且数据量很大的场景,可能出现无法下盘导致使用内存过大产生内存不受控的问题。 取值0时通过尝试内外表交换或者Nestloop可以避免出现此类内存不受控问题。 执行Nestloop可能造成某些场景性能劣化。遇到此种场景,该参数可取值1、2、6强制执行HashJoin。 取值0对向量化Full Join不生效,行为与取值1相同。只尝试外表是否可建立哈希表,不执行NestLoop。 取值5和6相对于取值0和1的优势是如果内表数据量大到无法直接放于可用内存中,但是外表可以,则直接使用外表进行Hashjoin,减少后续多次下盘划分数据的时间消耗。当外表数据distinct较少时,使用外表建立哈希表可能导致性能劣化。此时可以将参数取值调整到0或者1。 默认值:0
  • enable_agg_limit_opt 参数说明:标识是否对select distinct col from table limit N 场景优化,其中N小于16384时生效, table为列存表。该参数仅8.2.0.101及以上集群版本支持。 参数类型:USERSET 取值范围:布尔型 on表示开启该优化。开启后可保证查询结果来自不同DN,且各个DN无需全部建立全量hash表,可显著提升查询性能。 off表示关闭该优化。 默认值:on
  • stream_ctescan_refcount_threshold 参数说明:当enable_stream_ctescan开启时,控制CTE的最大引用次数。该参数需与stream_ctescan_max_estimate_mem共同使用。当CTE的估算内存大于stream_ctescan_max_estimate_mem且引用次数小于stream_ctescan_refcount_threshold时,将使用inline方式执行;反之,则使用share scan方式执行。该参数仅8.2.1及以上集群版本支持。 参数类型:SUSET 取值范围:整型,0~INT_MAX 默认值:4 该参数仅在取值大于0时生效,取值为0时仅依赖stream_ctescan_max_estimate_mem控制inline行为。
  • enable_cu_predicate_pushdown 参数说明:控制简单过滤条件是否下推到CU来过滤。该参数仅8.3.0及以上集群支持。 参数类型:USERSET 取值范围:布尔型 on:简单过滤条件下推到CU来过滤。 off:简单过滤条件不下推到CU来过滤。 默认值:off 字典列中的简单过滤条件指的是等值(“=”)运算、IN表达式及is (not) null。因为此过滤条件下推到存储层在CU填充VectorBatch时提前过滤,称此过滤为CU Predicate Filter。
  • enable_sonic_hashjoin 参数说明:标识是否依据规则约束使用基于面向列的hash表设计的Hash Join算子。 参数类型:USERSET 取值范围:布尔型 on表示在满足约束条件时使用基于面向列的hash表设计的Hash Join算子。 off表示不使用面向列的hash表设计的Hash Join算子。 当前开关仅适用于Inner Join的场景。 在开启enable_sonic_hashjoin,查询对应的Hash Inner算子内存使用通常可获得精简。但对于代码生成技术可获得显著性能提升的场景,对应的算子查询性能可能会出现劣化。 开启enable_sonic_hashjoin,且查询达到约束条件使用基于面向列的hash表设计的Hash Join算子时,在Explain Analyze/Performance的执行计划和执行信息中,算子显示为“Sonic Hash Join”,而未达到该约束条件时,算子名称将显示为“Hash Join”。 默认值:on
  • dict_plan_duplicate_ratio 参数说明:用于设置表的某一列的重复率大小,大于等于此阈值才会构建字典编码。字典的典型场景是该列distinct很少,重复率很大。该参数仅8.3.0及以上集群支持。 参数类型:USERSET 取值范围:0.0~100,单位:百分比 默认值:90 构建字典编码需同时满足dict_plan_distinct_limit和dict_plan_duplicate_ratio参数阈值。
  • plan_cache_mode 参数说明:标识在prepare语句中,选择生成执行计划的策略。 参数类型:USERSET 取值范围:枚举类型 auto表示按照默认的方式选择custom plan或者generic plan。 force_generic_plan表示强制走generic plan。 force_custom_plan表示强制走custom plan。 此参数只对prepare语句生效,一般用在prepare语句中参数化字段存在比较严重的数据倾斜的场景下。 custom plan是指对于preapre语句,在执行execute的时候,把execute语句中的参数嵌套到语句之后生成的计划。custom plan会根据execute语句中具体的参数生成计划,这种方案的优点是每次都按照具体的参数生成优选计划,执行性能比较好;缺点是每次执行前都需要重新生成计划,存在大量的重复的优化器开销。 generic plan是指对于preapre语句生成计划,该计划策略会在执行execute语句的时候把参数bind到plan中,然后执行计划。这种方案的优点是每次执行可以省去重复的优化器开销;缺点是当bind参数字段上数据存在倾斜时该计划可能不是最优的,部分bind参数场景下执行性能较差。 默认值:auto
  • inlist_rough_check_threshold 参数说明:当enable_csqual_pushdown开启时、过滤条件为IN进行rough check条件下推时,控制IN条件中值的个数的最大值。IN过滤条件中值的个数超过该参数时,将获取IN条件中值的最大/最小值进行条件下推。该参数仅8.2.0.101及以上集群版本支持。 参数类型:SUSET 取值范围:整型,0~10000 默认值:100 如果IN条件在表的单列分布列上进行,可以在DN进行值的过滤,此时IN条件中值的个数的最大值为inlist_rough_check_threshold的DN倍。
共100000条