更新时间:2024-08-20 GMT+08:00

AI特性

enable_hypo_index

参数说明:该参数控制数据库的优化器进行EXPLAIN时是否考虑创建的虚拟索引。通过对特定的查询语句执行explain,用户可根据优化器给出的执行计划评估该索引是否能够提升该查询语句的执行效率。

该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。

取值范围:布尔型

  • on表示在进行EXPLAIN时创建虚拟索引。
  • off表示在进行EXPLAIN时不创建虚拟索引。

默认值:off

db4ai_snapshot_mode

参数说明:snapshot有2种模式:MSS(物化模式,存储数据实体)和CSS(计算模式,存储增量信息)。

参数类型:字符串

参数单位:

取值范围:"MSS","CSS"

  • "MSS":表示物化模式,db4ai在创建快照的时候存储数据实体。
  • "CSS":表示计算模式,db4ai在创建快照的时候存储增量信息。

默认值:"MSS"

设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。

设置建议:建议设置为默认值。根据需要进行模式切换。

db4ai_snapshot_version_delimiter

参数说明:该参数为数据表快照版本分隔符。

参数类型:字符串

参数单位:

取值范围:字符串长度需设置为1,即一个字符,如:"@","#"等,需要注意的是"!"是非法字符。

默认值:"@"

设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。

设置建议:建议设置为默认值。

db4ai_snapshot_version_separator

参数说明:该参数用于指定数据表快照子版本分隔符。

参数类型:字符串

参数单位:

取值范围:字符串长度需设置为1,即一个字符,如:"@","#"等,需要注意的是"?"是非法字符。

默认值:"."

设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。

设置建议:建议设置为默认值。

enable_ai_stats

参数说明:该参数用于指定是否创建或者使用智能统计信息。

该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。

取值范围:布尔型

  • on表示创建并且使用智能统计信息。
  • off表示不创建或者不适用智能统计信息。

默认值:on

multi_stats_type

参数说明:该参数用于指定在enable_ai_stats为on状态下创建的统计信息类别。

该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。

取值范围:枚举类型,有效值为"BAYESNET"、"MCV"、"ALL"。

  • "BAYESNET":只创建智能统计信息。
  • "MCV":只创建传统统计信息。
  • "ALL":同时创建传统统计信息和智能统计信息。

默认值:"BAYESNET"

ai_stats_cache_limit

参数说明:该参数用于指定在enable_ai_stats为on状态下最多缓存的模型数量。

该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。

取值范围:整型,30~1000。

默认值:100

enable_operator_prefer

参数说明:该参数用于指定是否开启算子倾向性规则,在估计代价相近的情况下,倾向于选择参数化路径执行表连接。

该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。

取值范围:布尔型

  • on表示开启参数化路径优先。
  • off表示不开启参数化路径优先。

默认值:off

此参数生效有两个必要的前置条件:

  • 参数化路径被生成。
  • 参数化路估计的代价和其他索引扫描算子类似。

enable_cachedplan_mgr

参数说明:该参数用于指定是否开启自适应计划选择功能。自适应计划选择弥补了传统单一缓存计划无法根据查询条件参数进行变化带来的性能问题,并且避免了频繁调用查询优化。开启此功能用户可以通过维护多个缓存计划实现适应不同的查询参数,从而提升查询执行性能。

参数类型:布尔型

参数单位:

取值范围:

  • on:表示允许使用多计划缓存功能。
  • off:表示不允许使用多计划缓存功能。

默认值:on

设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。

设置建议:建议设置为默认值。开启此参数有助于提升查询性能,关闭此参数可能导致查询性能的降低。

max_stmt_aplan_num

参数说明:该参数用于控制自适应计划选择每个查询的候选计划个数上限。

该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。

取值范围:整型,0~20。

默认值:5

recommend_session_aplan_memory

参数说明:该参数用于控制自适应计划选择每个session中的候选计划内存上限,大于或者等于这个值之后将不再在内存中插入新的候选计划,单位KB

该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。

取值范围:整型,1024~102400。

默认值:5120

repick_plan_min_duration

参数说明:该参数用于控制探测到的计划的可用下限,在策略探测时,如果被探测策略的执行时间不小于cplan的repick_plan_min_duration倍,将直接报错。注意设置为0的时候表示关闭报错机制。

该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。

取值范围:整型,0~INT_MAX。

默认值:0

enable_adaptive_cost

参数说明:该参数用于设置基于反馈的优化器基数和代价矫正功能总开关,打开后开启算子信息收集流程和基数估计流程,后端模型维护的启动线程会随此参数开关启动或退出。

参数类型:布尔型

参数单位:

取值范围:

  • on:表示开启算子信息流程和基数估计流程。
  • off:表示关闭算子信息流程和基数估计流程。

默认值:

  • on:新安装的数据库的默认值。
  • off:505.1.0版本之前的数据库升级后的默认值。

设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。

设置建议:建议设置为默认值。请根据实际需要开启/关闭此参数。

enable_feedback_cardest

参数说明:该参数用于另外设置的基于反馈的优化器基数和代价矫正功能开关,用于开发人员诊断模型相关问题。当enable_adaptive_cost参数设置为off,该参数设置为on时,算子信息仍会被收集,反馈基数估计接口仍会被调用,但此时后端自动模型维护的线程不会被启用,开发人员可以通过gs_acm_analyze_workload_manual()函数手动训练模型诊断问题。

参数类型:布尔型

参数单位:

取值范围:

  • on:算子信息会被收集,且反馈基数估计接口仍会被调用,但后端自动模型维护的线程并不会被启用。
  • off:控制完全交由enable_adaptive_cost参数控制。

默认值:

  • on:新安装的数据库的默认值
  • off:505.1.0版本之前的数据库升级后的默认值

设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。

设置建议:建议设置为默认值,以便开发人员诊断模型相关问题。如不需要可以关闭并将控制完全交给enable_adaptive_cost参数,但这样做会牺牲一定的灵活性。

adaptive_cardest_strategy

参数说明:该参数用于设置选择基数估计模型偏好。

参数类型:枚举类型

参数单位:

取值范围:"auto"、"use_statistics"、"use_feedback"

  • "auto":自适应模式,自动根据估计的历史准确性判断是使用统计方法还是反馈方法。
  • "use_statistics":优先使用统计信息做基数估计。
  • "use_feedback":优先使用反馈模型做基数估计。

默认值:"auto"

设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。

设置建议:建议设置为默认值。

maximal_feedback_model_num

参数说明:该参数用于设置基数反馈模型数量上限,超过此上限后不再训练新的模型。

参数类型:整型

参数单位:

取值范围:-1 ~ 1000000。值为-1表示无上限。

默认值:10000

设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。

设置建议:建议设置为默认值。如果基数反馈模型数量上限设置过小可能会出现系统因无法训练新的模型而导致反馈基数估计功能失效;如果数量上限设置过大可能会影响系统性能,造成系统性能下降。

feedback_model_cache_limit

参数说明:该参数用于设置控制基数反馈模型在全局内存最大缓存个数。

参数类型:整型

参数单位:

取值范围:10 ~ 100000

默认值:500

设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。

设置建议:建议设置为默认值。最大缓存个数设置过大或者过小都会影响系统性能,造成系统性能下降。

feedback_model_expired_time

参数说明:该参数用于设置基数反馈模型超时时间,过期的模型会定期被清理。

参数类型:整型

参数单位:毫秒

取值范围:500 ~ 2147483647

默认值:1000*60*60*24

设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。

设置建议:建议设置为默认值。如果超时时间设置过久则会造成系统性能下降;如果设置过短则会导致模型没有过期便被清理掉而影响功能。

feedback_collection_expired_time

参数说明:该参数用于设置基数反馈模型超时时间,过期的算子模型会定期被清理。

参数类型:整型

参数单位:毫秒

取值范围:50 ~ 2147483647

默认值:1000*60*60

设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。

设置建议:建议设置为默认值。如果超时时间设置过久则会造成系统性能下降;如果设置过短则会导致模型没有过期便被清理掉而影响功能。

adaptive_cost_min_time

参数说明:该参数用于设置基数反馈收集的SQL时间阈值,只有执行时间大于该值的语句反馈会被收集。

参数类型:整型

参数单位:毫秒

取值范围:0 ~ 2147483647

默认值:1000

设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。

设置建议:建议设置为需要调优的慢查询执行时长的20%。如果过低可能造成1%左右系统性能下降;如果设置过长则会导致能够被自动调优的查询不在功能生效范围内。

cost_update_window_size

参数说明:该参数用于调整收集用于回归的数据的滑动窗口大小。

参数类型:整型

参数单位:

取值范围:1 ~ 20

默认值:5

设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。

设置建议:建议设置为默认值。

adaptive_costest_strategy

参数说明:该参数用于设置代价评估使用新/旧代价的策略。

参数类型:枚举类型

参数单位:

取值范围:"L0"、"L1"

  • "L0":只有在基数估计正确(比如使用反馈基数估计)的时候才会触发新代价。
  • "L1":优先使用新的代价模型计算。

默认值:"L0"

设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。

设置建议:建议设置为默认值。

adaptive_costmodel_calibration_interval

参数说明:该参数用于设置代价模型矫正逻辑的间隔时间。

参数类型:整型

参数单位:毫秒

取值范围:0 ~ 2147483647。0表示关闭自动触发代价模型矫正功能。

默认值:1000*60*60

设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。

设置建议:建议设置为默认值。如果该参数设置过小会导致代价模型经常触发矫正功能从而造成性能劣化;如果设置过大则会导致模型矫正不及时性能不优。

unix_socket_directory

参数说明:用于指定unix_socket通信方式中,文件存放的路径。此参数只能在配置文件gaussdb.conf中指定。在启动fenced模式前需要设定该GUC参数。

该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。

取值范围:字符串,长度大于等于0。

默认值:''

enable_ai_watchdog

参数说明:开启或关闭AI Watchdog功能。

该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。

取值范围:布尔型

  • on:表示开启。
  • off:表示关闭。

默认值:on

enable_ai_watchdog_forcible_oom_detection

参数说明:强制开启或关闭AI Watchdog的OOM探测功能,若关闭该参数,则会自动根据当前数据库的规格判断是否需要启动OOM探测功能。自动判断模式下,对于max_process_memory 设置为64GB及以上的场景,才会启动OOM探测功能。由于OOM探测功能依赖内存管理模块获取的信息,因此,如果内存管理模块未开启或失效,则OOM探测功能也无法启用。

参数类型:布尔型

参数单位:

取值范围:

  • on:表示开启。
  • off:表示关闭。

默认值:off

设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。

设置建议:建议设置为默认值。如开启可能会对系统性能产生影响。

enable_ai_watchdog_healing

参数说明:开启或关闭AI Watchdog的自愈功能。

该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。

取值范围:布尔型

  • on:表示开启。
  • off:表示关闭。

默认值:on

ai_watchdog_max_cpu_usage

参数说明:预期的数据库的CPU使用率上限,该值会根据多核情况进行归一化。该参数值设置为0时,表示不判断CPU使用率情况。

该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。

取值范围:浮点型,大于等于0,小于等于1。

默认值:0.8

ai_watchdog_oom_dynamic_used_threshold

参数说明:预期的数据库的动态内存使用率上限。

该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。

取值范围:浮点型,大于等于0,小于等于1。

默认值:0.95

ai_watchdog_oom_growth_confidence

参数说明:OOM检测算法置信度。

该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。

取值范围:浮点型,大于等于0.1,小于等于1。

默认值:0.95

ai_watchdog_oom_malloc_failures

参数说明:容忍的最大连续内存分配失败数量,超过该数量可能会触发OOM探测功能。

该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。

取值范围:整数型,大于等于1,小于等于32000。

默认值:50

ai_watchdog_oom_other_used_memory_threshold

参数说明:预期的数据库的其他部分内存使用上限,单位是MB。

该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。

取值范围:整数型,大于等于1,小于等于1048576。

默认值:20480

ai_watchdog_oom_process_threshold

参数说明:预期的数据库进程使用占max_process_memory的使用比例,到达该阈值时,会触发内存泄漏判断;该值可以超过1。

该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。

取值范围:浮点型,大于等于0,小于等于10。

默认值:1.1

ai_watchdog_oom_shared_threshold

参数说明:预期的数据库共享内存使用比例上限。

该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。

取值范围:浮点型,大于等于0,小于等于1。

默认值:0.4

ai_watchdog_rto_restriction_time

参数说明:AI Watchdog自愈功能的RTO限制,超过该RTO阈值,则不进行自愈操作,单位是秒。

该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。

取值范围:整数型,大于等于0,小于等于36000。

默认值:600

ai_watchdog_tolerance_times

参数说明:AI Watchdog启动自愈前最多能容忍多少次连续异常事件,通过该参数可以避免错误操作。

该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。

取值范围:整数型,大于等于0,小于等于100。

默认值:4

ai_watchdog_tps_threshold

参数说明:数据库实例的预期TPS使用下限,低于该值,会触发异常判断逻辑。

该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。

取值范围:整数型,大于等于0,小于等于32000。

默认值:2

ai_watchdog_wait_time

参数说明:为了避免数据库频繁进行自愈操作,会在数据库启动后一段时间进行等待,该值即用来调整等待时间,单位是秒。

该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。

取值范围:整数型,大于等于0,小于等于36000。

默认值:1800

ai_watchdog_warning_retention

参数说明:AI Watchdog在dbe_perf.ai_watchdog_detection_warnings视图中保留的告警记录数上限。

该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。

取值范围:整数型,大于等于0,小于等于32000。

默认值:20