更新时间:2024-11-30 GMT+08:00

资源管理

未对数据库资源做控制时,容易出现并发任务抢占资源导致操作系统过载甚至最终崩溃。操作系统过载时,其响应用户任务的速度会变慢甚至无响应;操作系统崩溃时,整个系统将无法对用户提供任何服务。GaussDB(DWS)的负载管理功能能够基于可用资源的多少均衡数据库的负载,以避免数据库系统过载。

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

enable_perm_space

参数说明:是否开启perm space功能。该参数需在CN和DN同时应用。

参数类型:POSTMASTER

取值范围:布尔型

  • on表示打开perm space管理。
  • off表示关闭perm space管理。

默认值:on

space_once_adjust_num

参数说明空间管控和空间统计功能中,控制慢速构建与细粒度校准操作中每次处理的文件个数阈值。该参数8.1.3及以上集群版本支持。

参数类型:SIGHUP

取值范围整型,0~INT_MAX

  • 0表示不启用慢速构建和细粒度校准功能。

默认值:300

文件个数阈值影响数据库资源,建议合理设置。

space_readjust_schedule

参数说明:空间管控和空间统计功能中,控制是否触发自动校准以及校准空间误差阈值。该参数8.1.3及以上集群版本支持。

参数类型:SIGHUP

取值范围:字符串

  • off表示关闭自动校准功能。
  • auto表示打开自动校准功能,并且触发自动校准的差误阈值为1GB。
  • auto(空间大小+K/M/G)表示打开自动校准功能,并且触发自动校准的误差阈值为自定义的空间大小KB/MB/GB。例如,auto(200M)表示打开自动校准功能,且触发自动校准的误差阈值为200MB。

默认值:auto

default_partition_cache_strategy

参数说明:控制分区缓存的默认策略。该参数8.3.0及以上集群版本支持。

参数类型:USERSET

取值范围:枚举类型

  • cache_each_partition_as_possible表示尽可能的缓存插入的数据,插入时遇到不同分区的数据并不一定将数据刷入CU。
  • flush_when_switch_partition表示插入时数据属于不同分区就将数据刷入CU。

默认值:cache_each_partition_as_possible

enable_libcomm_schedule

参数说明:是否开启网络管控。该参数仅8.2.1及以上集群版本支持。

参数类型:POSTMASTER

取值范围:布尔型

  • on表示开启网络管控功能。
  • off表示关闭网络管控功能。

默认值:on

max_active_statements

参数说明:设置全局的最大并发数量。该参数只在CN上应用且针对一个CN上的执行作业。

数据库管理员需根据系统资源(如CPU资源、IO资源和内存资源)情况,调整此数值大小,使得系统支持最大限度的并发作业,且防止并发执行作业过多,引起系统崩溃。

参数类型:SIGHUP

取值范围:整型,-1 ~ INT_MAX。设置为-1和0表示对最大并发数不做限制。

默认值:60

max_queue_statements

参数说明:设置最大排队长度。该参数仅8.3.0及以上集群版本支持。

该参数只在CN上应用,针对集群上的所有执行作业,当排队作业超过该参数设置值后,若继续下发作业,系统会报错,提示排队超长。

该参数支持全部排队队列,包含全局并发排队队列、快车道排队队列、慢车道排队队列、CCN全局内存排队队列、CCN资源池排队队列等,每个排队队列单独计数。

参数类型:SIGHUP

取值范围整型,-1~INT_MAX,设置为-1表示对排队数量不做限制。

默认值:-1

parctl_min_cost

参数说明:静态资源管理场景下,复杂作业最小估算代价。用于简单作业和复杂作业划分的阈值,估算代价小于该值的作业为简单作业,估算代价大于等于该值的作业为复杂作业。

参数类型:SIGHUP

取值范围:整型,-1 ~ INT_MAX

  • parctl_min_cost等于-1时,所有作业都是简单作业;
  • 估算代价小于10的作业任何场景下都是简单作业。

默认值:100000

cgroup_name

参数说明:设置当前使用的Cgroups的名字或者调整当前group下排队的优先级。

即如果先设置cgroup_name,再设置session_respool,那么session_respool关联的控制组起作用,如果再切换cgroup_name,那么新切换的cgroup_name起作用。

切换cgroup_name的过程中如果指定到Workload控制组级别,数据库不对级别进行验证。级别的范围只要在1-10范围内都可以。

参数类型:USERSET

建议尽量不要混合使用cgroup_name和session_respool。

取值范围:字符串

默认值:DefaultClass:Medium

DefaultClass:Medium表示DefaultClass下Timeshare控制组中的Medium控制组。

cpu_collect_timer

参数说明:设置语句执行时在DN上收集CPU时间的周期。

数据库管理员需根据系统资源(如CPU资源、IO资源和内存资源)情况,调整此数值大小,使得系统支持较合适的收集周期,太小会影响执行效率,太大会影响异常处理的精确度。

参数类型:SIGHUP

取值范围:整型,1 ~ INT_MAX, 单位为秒。

默认值:30

enable_cgroup_switch

参数说明:是否控制数据库执行语句时根据类型自动切换到TopWD组。

参数类型:USERSET

取值范围:布尔型

  • on表示控制数据库执行语句时根据类型自动切换到TopWD组。
  • off表示控制数据库执行语句时根据类型不自动切换到TopWD组。

默认值:off

memory_tracking_mode

参数说明:设置记录内存信息的模式。

参数类型:USERSET

取值范围

  • none,不启动内存统计功能。
  • normal,仅做内存实时统计,不生成文件。
  • executor,生成统计文件,包含执行层使用过的所有已分配内存的上下文信息。
  • fullexec,生成文件包含执行层申请过的所有内存上下文信息。

默认值:none

memory_detail_tracking

参数说明:设置需要的线程内分配内存上下文的顺序号以及当前线程所在query的plannodeid。

参数类型:USERSET

取值范围:字符型

默认值:

该参数不允许用户进行设置,建议保持默认值。

enable_resource_track

参数说明:设置是否开启资源实时监控功能。该参数需在CN和DN同时应用。

参数类型:SIGHUP

取值范围:布尔型

  • on表示打开资源监控。
  • off表示关闭资源监控。

默认值:on

enable_resource_record

参数说明:设置是否开启资源监控记录归档功能。开启时,对于执行结束的记录,会分别被归档到相应的INFO视图(GS_WLM_SESSION_INFOGS_WLM_OPERAROR_INFO)。此参数需在CN和DN同时应用。

参数类型:SIGHUP

取值范围:布尔型

  • on表示开启资源监控记录归档功能。
  • off表示关闭资源监控记录归档功能。

默认值:on

新建集群默认值为on,升级场景该参数的默认值为保持前向兼容维持原值。

enable_track_record_subsql

参数说明:设置是否开启子语句记录归档功能。开启时,存储过程、匿名块内部的子语句会被记录归档到相应的INFO表(GS_WLM_SESSION_INFO)。此参数为会话级参数,可在与CN的连接会话中设置生效,仅影响该会话连接中的语句;也可在CN和DN上同时设置,能全局生效。

参数类型:USERSET

取值范围:布尔型

  • on表示开启子语句资源监控记录归档功能。
  • off表示关闭子语句资源监控记录归档功能。

默认值:on

enable_user_metric_persistent

参数说明:设置是否开启用户/资源池历史资源监控转存功能。开启时,对于PG_TOTAL_USER_RESOURCE_INFO视图中数据,会定期采样保存到GS_WLM_USER_RESOURCE_HISTORY系统表中;对于GS_RESPOOL_RESOURCE_INFO视图中数据,会定期采样保存到GS_RESPOOL_RESOURCE_HISTORY系统表中。

参数类型:SIGHUP

取值范围:布尔型

  • on表示开启用户/资源池历史资源监控转存功能。
  • off表示关闭用户/资源池历史资源监控转存功能。

默认值:on

user_metric_retention_time

参数说明:设置用户历史资源监控数据的保存天数。该参数仅在enable_user_metric_persistent为on时有效。

参数类型:SIGHUP

取值范围:整型,0~3650,单位为天。

  • 值等于0时,用户历史资源监控数据将永久保存。
  • 值大于0时,用户历史资源监控数据将保存对应天数。

默认值:7

enable_instance_metric_persistent

参数说明:设置是否开启实例资源监控转存功能。开启时,对实例的监控数据会保存到GS_WLM_INSTANCE_HISTORY系统表中。

参数类型:SIGHUP

取值范围:布尔型

  • on表示开启实例资源监控转存功能。
  • off表示关闭实例资源监控转存功能。

默认值:on

instance_metric_retention_time

参数说明:设置实例历史资源监控数据的保存天数。该参数仅在enable_instance_metric_persistent为on时有效。

参数类型:SIGHUP

取值范围:整型,0~3650,单位为天。

  • 值等于0时,实例历史资源监控数据将永久保存。
  • 值大于0时,实例历史资源监控数据将保存对应设置天数。

默认值:7

resource_track_level

参数说明:设置当前会话的资源监控的等级。该参数只有当参数enable_resource_track为on时才有效。

参数类型:USERSET

取值范围:枚举型

  • none,不开启资源监控功能。
  • query,开启query级别资源监控功能,开启此功能会把SQL语句的计划信息(类似explain输出信息)记录到TopSQL中。
  • perf,开启perf级别资源监控功能,开启此功能会把包含实际执行时间和执行行数的计划信息(类似explain analyze输出信息)记录到TopSQL中。
  • operator,开启operator级别资源监控功能,开启此功能不仅会把包含实际执行时间和执行行数的信息记录到TopSQL中,还会把算子级别执行信息刷新到TopSQL中。

默认值:query

time_track_strategy

参数说明:设置当前会话算子执行时间收集采用的策略。该参数仅8.2.1及以上集群版本支持。

参数类型:SIGHUP

取值范围:枚举型

  • tsc,使用TSC(Time-Stamp Counter)进行算子执行时间的收集,适用perf级别的Top SQL以及EXPLAIN,且仅针对非向量化算子。其他场景依然使用时间函数进行执行时间的收集。
  • vector,关闭perf级别Top SQL非向量化算子执行时间的收集,其他场景不受影响,依然使用时间函数进行执行时间的收集。
  • timer,所有场景均使用时间函数进行时间算子执行时间的收集,8.2.0及之前的集群版本均使用该方法进行算子执行时间的收集。

默认值:timer

  • TSC有两种转换时间的方法,包括TSC频率和换算数。X86平台默认仅能使用TSC频率,ARM平台默认优先使用TSC换算数。可通过tsc相关的视图或者函数查看当前或者所有节点的TSC换算信息。
  • 新安装集群场景下,该参数的默认值为tsc。升级场景下,该参数为保持前向兼容,其默认值为timer。

resource_track_cost

参数说明:设置对当前会话的语句进行资源监控的最小执行代价。该参数只有当参数enable_resource_track为on时才有效。

参数类型:USERSET

取值范围:整型,-1~INT_MAX

  • 值为-1时,不进行资源监控。
  • 值大于或等于0时,对执行代价超过该参数值的语句进行资源监控。

默认值:0

新建集群默认值为0,升级场景该参数的默认值为保持前向兼容维持原值。

resource_track_duration

参数说明:设置资源监控实时视图(参见表1)中记录的语句执行结束后进行历史信息转存的最小执行时间。当执行完成的作业,其执行时间不小于此参数值时,作业信息会从实时视图(以statistics为后缀的视图)转存到相应的历史视图(以history为后缀的视图)中。该参数只有当enable_resource_track为on时才有效。

参数类型:USERSET

取值范围:整型,0~INT_MAX,单位为秒。

  • 值为0时,资源监控实时视图(表1)中记录的所有语句都进行历史信息归档。
  • 值大于0时,资源监控实时视图(表1)中记录的语句的执行时间和排队时间之和超过该值就会进行历史信息归档。

默认值:60s

resource_track_subsql_duration

参数说明:设置过滤存储过程中子语句的最小执行时间。该参数仅8.2.1及以上集群版本支持。

当存储过程中子语句执行完成时,其执行时间大于此参数设置值时,作业信息会转储到TopSQL归档表中。该参数只有当enable_track_record_subsql为on时生效。

参数类型:USERSET

取值范围:整型,0~INT_MAX,单位为秒。

  • 值为0时,存储过程中所有子语句都进行历史信息归档。
  • 值大于0时,存储过程中子语句记录的执行时间超过设置值就会进行历史信息归档。

默认值:180s

query_exception_count_limit

参数说明:设置作业触发异常规则次数的上限。作业触发异常规则次数达到上限后该作业会被自动加入黑名单且禁止再执行,只有移除黑名单后才能恢复运行。

参数类型:USERSET

取值范围:整型,-1~INT_MAX。

  • 值为-1时,表示对作业触发异常规则的次数不做限制,即作业触发异常规则次数再多也不会自动将该作业加入黑名单。
  • 值大于等于0时,表示作业触发异常规则次数达到阈值时该作业立即被加入黑名单。其中,0和1含义相同,表示只要作业触发异常规则即会将作业加入黑名单。

默认值:-1

dynamic_memory_quota

参数说明:自适应负载场景下,设置内存控制的比重,即可以使用系统最大可用内存的比例。

参数类型:SIGHUP

取值范围:整型,1~100

默认值:80

disable_memory_protect

参数说明:禁止内存保护功能。当系统内存不足时如果需要查询系统视图,可以先将此参数置为on,禁止内存保护功能,保证视图可以正常查询。该参数只适用于在系统内存不足时进行系统诊断和调试,正常运行时请保持该参数配置为off。

参数类型:USERSET

取值范围:布尔型

  • on表示禁止内存保护功能。
  • off表示启动内存保护功能。

默认值:off

query_band

参数说明:用于标示当前会话的作业类型,由用户自定义。

参数类型:USERSET

取值范围:字符型

默认值:

enable_dynamic_workload

参数说明:是否开启动态负载管理功能。

参数类型:POSTMASTER

取值范围:布尔型

  • on表示打开动态负载管理功能。
  • off表示关闭动态负载管理功能。

默认值:on

  • 开启内存自适应后,收集统计信息后不再需要使用work_mem进行算子内存使用调优,由系统根据当前负载情况,为每个语句生成计划,并估算每个算子的内存使用量和整个语句的内存使用量。系统根据负载情况和整个语句内存使用量进行队列调度,所以多并发场景会出现语句排队的情况。
  • 由于优化器估算内存存在估算不准的情况,会出现语句内存使用量低估或高估的情况。低估时,执行时内存会自动扩展。高估时,会导致系统内存利用不足,排队语句增多,可能导致性能非最优。此时需要识别语句估算内存远大于实际DN峰值内存的语句,通过设置query_max_mem进行调优,详见优化器参数调整
  • 由于优化器估算内存存在估算不准的情况,8.2.1之前的集群版本中为了避免出现CCN全局排队的情况,经常需要关闭enable_dynamic_workload参数,这样操作会导致动态负载管理功能不可用。因此在8.2.1集群版本中引入了enable_global_memctl,在出现CCN异常排队情况时,可直接关闭参数enable_global_memctl,作业即可下发至资源池运行。

enable_global_memctl

参数说明:是否开启全局内存管理功能。该参数仅8.2.1及以上集群版本支持。

参数类型:SIGHUP

取值范围:布尔型

  • on表示打开全局内存管控的限制。
  • off表示关闭全局内存管控的限制。

默认值:on

动态负载功能包含两层内存管控队列:全局内存管控和资源池管控。全局内存管控通过作业的查询估算内存进行判断作业是否可进行下发,资源池管控通过资源池参数决定作业是否下发。8.2.1集群版本之前,开启动态负载管理功能后默认打开全局内存管控功能,由于可能存在优化器行数估算不准而出现语句内存使用量低估或高估,导致作业在CCN进行全局内存管控队列排队的情况。因此GaussDB(DWS)在8.2.1集群版本用该参数控制全局内存管控队列是否开启,以提高作业运行效率和减少CCN异常排队的情况发生。

此参数在修改时需注意:

  1. 当关闭此参数时,代表用户不需要CCN管控功能,此时CCN内存负反馈机制失效。
  2. 当作业正在运行时,若此时该GUC参数从关闭修改为开启,此时CCN内存负反馈机制生效,在高并发情况下,会出现暂时的内存不可用情况,待当前正在运行的作业运行完成后,动态负载功能会恢复。
  3. 当作业正在运行时,此时修改该GUC参数从开启到关闭状态,若作业大多是属于默认资源池的用户下发的,不建议直接修改,可能会出现内存报错问题。待无从属于默认资源池的用户下发的作业时,可以修改。建议用户绑定用户资源池后,再下发作业。

enable_wlm_internal_memory_limit

参数说明:是否开启负载管理对语句估算内存的内置限制功能。(该参数仅8.2.0及以上集群版本支持)

负载管理中的内存管理模块中,会对语句的估算内存做一些内置限制,如:

  • 语句的估算内存无法超过关联资源池内存上限的80%。
  • 当资源池的并发控制参数active_statements不为1时,语句的估算内存无法超过关联资源池内存上限的40%。
  • 内核中语句的估算内存开始时是一个范围值,可以理解为[最小估算内存,最大估算内存],其中,最大估算内存为语句运行性能最佳所需要的内存资源,最小估算内存为通过结果集下盘而保证语句能运行所需要的内存资源;最终的语句估算内存会在这个范围内取一个合理值,这个范围值中的最大估算内存也无法超过关联资源池内存上限的90%;

这些内置限制的目的是为了防止语句内存过高估算场景,高估场景下,语句预占内存资源过大,会引发后续作业排队,导致系统资源利用率下降,因此,内核限制了单个语句的估算内存上限值。内置限制可能会导致语句执行计划不是最优,可能在一定程度上影响单个语句性能;从8.2.0集群版本开始增加了内存负反馈机制,从一定程度上缓解了语句严重高估导致系统资源利用率下降的问题。为此,对应的从8.2.0版本开始,增加了enable_wlm_internal_memory_limit参数,由用户自由控制是否开启内置限制功能。

参数类型:SIGHUP

取值范围:布尔型

  • on表示打开负载管理对语句估算内存的内置限制。
  • off表示关闭负载管理对语句估算内存的内置限制。

默认值:on

enable_strict_memory_expansion

参数说明:是否开启对语句内存扩展的严格控制。(该参数仅8.2.0及以上集群版本支持)

语句在CN节点上会计算出估算内存,用该值来预占内存资源,在DN节点上会根据系统负载情况,在语句内存不足时尝试做内存扩展,以提升语句的执行效率。当打开此参数时,将会严格限制语句内存扩展的范围,尽可能保证语句的内存扩展不会超过语句的最大估算内存。语句的算子内存每次扩展是按比例扩展,因此,可能出现最后一次扩展内存之后一定幅度超过限制的现象,但能实现限制语句内存扩展在一定范围内。

参数类型:SIGHUP

取值范围:布尔型

  • on表示打开对语句内存扩展的严格控制。
  • off表示关闭对语句内存扩展的严格控制。

默认值:off

allow_zero_estimate_memory

参数说明:是否允许语句估算内存为0。(该参数仅8.2.0及以上集群版本支持)

当语句查询的表没有统计信息时,该语句在CN节点上的估算内存可能设置为0,当估算内存为0时,语句的内存将会变化为算子内存受到work_mem限制(work_mem来限制算子内存的方式已经不推荐使用),如果work_mem设置较大,而语句的算子数量较多时,语句的实际内存值也能会较大,该参数设置为off时,将不允许未做analyze的查询出现估算内存为0,避免不可预期的问题。

参数类型:SIGHUP

取值范围:布尔型

  • on表示允许语句估算内存为0。
  • off表示不允许语句估算内存为0。

默认值:on

wlm_memory_feedback_adjust

参数说明:是否开启动态负载管理中的内存负反馈功能。(该参数仅8.2.0及以上集群版本支持)

语句在CN节点上会计算出估算内存,用该值来预占内存资源,语句内存过高估算场景时,语句预占内存资源过大,会引发后续作业排队,导致系统资源利用率下降,内存负反馈机制,会基于DN上的实际使用内存情况,判断如果集群连续一段时间处于高估场景时,会由CCN节点动态降低语句在CN预占的内存资源,将高估的内存腾让出来,给后续作业使用,从一定程度上缓解了语句严重高估导致系统资源利用率下降的问题。

参数类型:SIGHUP

取值范围:字符串

  • on表示启用内存负反馈功能。
  • off表示关闭内存负反馈功能。
  • on(触发负反馈需要的时间,触发负反馈需要的估算内存百分比)表示启用内存负反馈功能,并且指定触发负反馈需要的时间以及触发负反馈需要的估算内存百分比参数。例如:on(60,50)表示启用内存负反馈功能,触发负反馈机制生效需要连续60秒都是高估场景,还需要语句预占的估算内存总值要超过系统可用内存的50%。默认触发负反馈机制生效的时间长度为50秒,默认触发负反馈生效的最低估算内存总值要超过系统可用内存的40%。

默认值:on

bbox_dump_count

参数说明:在bbox_dump_path定义的路径下,允许存储的GaussDB(DWS)所产生core文件最大数。超过此数量,旧的core文件会被删除。此参数只有当enable_bbox_dump为on时才生效。

参数类型:USERSET

取值范围:整型,1~20

默认值:8

在并发产生core文件时,core文件的产生个数可能大于bbox_dump_count。

io_limits

参数说明:该参数8.1.2版本中已废弃,为兼容历史版本功能保留该参数,当前版本设置无效。

参数类型:USERSET

取值范围:整型,0~1073741823

默认值:0

io_priority

参数说明:该参数8.1.2版本中已废弃,为兼容历史版本功能保留该参数,当前版本设置无效。

参数类型:USERSET

取值范围:枚举型

  • None
  • Low
  • Medium
  • High

默认值:None

session_respool

参数说明:当前的session关联的resource pool。

参数类型:USERSET

即如果先设置cgroup_name,再设置session_respool,那么session_respool关联的控制组起作用,如果再切换cgroup_name,那么新切换的cgroup_name起作用。

切换cgroup_name的过程中如果指定到Workload控制组级别,数据库不对级别进行验证。级别的范围只要在1-10范围内都可以。

建议尽量不要混合使用cgroup_name和session_respool。

取值范围:字符串,通过create resource pool所设置的资源池。

默认值:invalid_pool

enable_transaction_parctl

参数说明:是否管控事务块语句和存储过程语句。

参数类型:USERSET

取值范围:布尔型

  • on表示对事务块及存储过程语句进行管控。
  • off表示对事务块及存储过程语句不进行管控。

默认值:on

session_history_memory

参数说明:设置历史查询视图的内存大小。

参数类型:SIGHUP

取值范围:整型,10MB~max_process_memory的50%。

默认值:100MB

topsql_retention_time

参数说明:设置历史TopSQL中gs_wlm_session_info和gs_wlm_operator_info表中数据的保存时间。

参数类型:SIGHUP

取值范围:整型,0~3650,单位为天。

  • 值为0时,表示数据永久保存。
  • 值大于0时,表示数据能够保存的对应天数。

默认值:30

  • 设置此GUC参数启用数据保存功能前,请先清理gs_wlm_session_info和gs_wlm_operator_info表中的数据。
  • 新建集群默认值为30,升级场景该参数的默认值为保持前向兼容维持原值。

transaction_pending_time

参数说明:当enable_transaction_parctl为on时,事务块语句和存储过程语句排队的最大时间。

参数类型:USERSET

取值范围:整型,-1~INT_MAX,单位为秒。

  • 值为-1或0:事务块语句和存储过程语句无超时判断,排队至资源满足可执行条件。
  • 值大于0:事务块语句和存储过程语句排队超过所设数值的时间后,无视当前资源情况强制执行。

默认值:0

此参数仅对存储过程及事务块的内部语句有效,即PG_SESSION_WLMSTAT中enqueue字段显示为Transaction或StoredProc的语句才会生效。

wlm_sql_allow_list

参数说明:用于指定资源管理SQL白名单语句,SQL白名单语句不受资源管理监控。

参数类型:SIGHUP

取值范围:字符串,支持最大字符为1024

默认值:

  • wlm_sql_allow_list中可指定一条或多条SQL白名单语句,指定多条时,通过“;”进行分隔。
  • 系统通过前置匹配判断SQL语句是否受监控,不区分大小写,例如:wlm_sql_allow_list='SELECT',则所有select语句均不受资源管理监控。
  • 识别参数值白名单字符串头部的空格,例如:'SELECT'与' SELECT'的含义是不一致的,' SELECT'只过滤头部带空格的SELECT语句。
  • 系统默认部分SQL语句为白名单语句,默认白名单语句不可修改;可以通过系统视图gs_wlm_sql_allow查询默认和已经通过GUC设置成功的SQL白名单语句。
  • 通过wlm_sql_allow_list指定的SQL语句不可追加,只能通过覆盖的方式设置;若需追加SQL语句,需要先查出原先指定的GUC值,在原值后面加补上新增的语句,以“;”分隔后重新设置。