更新时间:2024-11-12 GMT+08:00
分享

Query

instr_unique_sql_count

参数说明:控制系统中unique sql信息实时收集功能的最大收集数量。

该值由大变小将会清空系统中原有的数据重新统计(备机不支持此能力);从小变大不受影响。

当系统中产生的unique sql信息(由dbe_perf.statement/dbe_perf.summary_statement统计)大于instr_unique_sql_count时,系统产生的unique sql信息不被统计。

在x86架构集中式部署下,硬件配置规格为32核CPU/256GB内存,使用Benchmark SQL 5.0工具测试性能,开关此参数性能影响约3%。

参数类型:整型

参数单位:

取值范围0 ~ 2147483647,0表示不启用unique sql信息收集功能。

默认值200000

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

设置建议推荐使用默认值。

设置不当的风险与影响:设置较大会增加dbe_perf.statement视图占用的内存上限。设置过小可能出现视图中记录语句过少,导致缺少问题定位手段,影响对慢SQL的诊断。

instr_unique_sql_combination_options

参数说明:Unique SQL同类语句归并功能配置项,该参数的值由若干个配置项用逗号隔开构成。

开启该特性会将同类语句的Unique SQL ID归一,并将生成的Unique SQL String做归一化处理。

参数类型字符串

参数单位

取值范围参照表1

  • 归并功能配置时,按照表1设置字符串,多个配置项之间用逗号隔开,例如:SET instr_unique_sql_combination_options='in_clause';
  • 参数设置为空时,即为不开启该功能,例如:SET instr_unique_sql_combination_options='';
表1 归并功能配置项

归并功能配置项

归并功能行为控制

in_clause

控制select in()语句的in中仅含有固定参数与预编译绑定参数的情况进行归并。

例1:select * from example_table where column in (1,2,3);

归并后Unique SQL String:select * from example_table where column in (1…n);

例2:select * from example_table where column in ($1,$2,$3);

归并后Unique SQL String:select * from example_table where column in ($1…$n);

例3:select * from example_table where column in (1,2,$1,3,$2);

归并后Unique SQL String:select * from example_table where column in (1...n,$1...$n);

例4:select * from example_table where (column1, column2) in ((1, 'a'), (2, 'b'), (3, 'c'));

归并后Unique SQL String:select * from example_table where (column1, column2) in ((1...n));

默认值"in_clause"

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

设置建议推荐使用默认值。

设置不当的风险与影响:修改该参数值将使涉及归并的查询语句的Unique SQL ID发生改变,会对已创建SQLpatch的SQL语句产生影响。

  • 升级时默认值为"",新实例下发时默认值为"in_clause"。
  • 对于bigint、real、float4、blob、numeric、decimal、number、dec、integer类型的值,在in()中含有单个参数与多个参数的两种情况,会生成两种不同的unique_sql_id。

instr_unique_sql_track_type

参数说明:unique sql记录sql方式。

参数类型:枚举类型

参数单位:

取值范围:
  • top:只记录顶层sql。
  • all:记录所有sql。

默认值all

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

设置建议推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

该参数默认为all。与设置为top时相比,参数值为all时会额外记录存储过程内语句的统计信息,对存储过程的执行会产生一定的性能损耗,对于存储过程内简单表达式等执行较快的语句产生的性能影响会更加严重。

unique_sql_retention_time

参数说明:清理unique sql哈希表的间隔,默认为30分钟。

参数类型:整型

参数单位:分钟(min)

取值范围:1 ~ 3650

默认值30

设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。取值不能带单位。

设置建议不建议用户修改该参数,该参数当前版本无功能控制点。

设置不当的风险与影响:修改该参数取值可能导致集群出现意料之外的结果,请保持默认值。

enable_instr_rt_percentile

参数说明:控制是否开启计算系统中80%和95%的SQL响应时间的功能。

参数类型:布尔型

参数单位:

取值范围:

  • on:表示打开sql响应时间信息计算功能。
  • off:表示关闭sql响应时间信息计算功能。

默认值on

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

设置建议:建议开启该参数。

设置不当的风险与影响:若关闭该参数无法记录80%和95%的SQL响应时间,导致无法直观监测系统性能。

percentile

参数说明:sql响应时间百分比信息,后台计算线程会根据该参数取值计算相应的百分比信息。

参数类型字符串。

参数单位:

取值范围:当前有效值只有“80,95”。

默认值"80,95"

设置方式:该参数属于INTERNAL类型参数,为固定参数,用户无法修改此参数,只能查看。

设置建议:该参数不允许用户进行设置,只能查看。

设置不当的风险与影响:

instr_rt_percentile_interval

参数说明:sql响应时间信息计算间隔,sql响应时间信息计算功能打开后,后台计算线程每隔设置的时间进行一次计算。

参数类型整型

参数单位:秒(s)

取值范围:0 ~ 3600

默认值10

设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。例如,不带单位取值60,表示instr_rt_percentile_interval为60s;带单位取值1min,表示instr_rt_percentile_interval为1min。取值如果要带单位,必须为s、min、h。

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

enable_instr_cpu_timer

参数说明:控制是否捕获sql执行的cpu时间消耗。

在x86架构集中式部署下,硬件配置规格为32核CPU/256GB内存,使用Benchmark SQL 5.0工具测试性能,开关此参数性能影响约3.5%。

参数类型:布尔型

参数单位:

取值范围:

  • on:表示捕获sql执行的cpu时间消耗。
  • off:表示不捕获sql执行的cpu时间消耗。

默认值on

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

设置建议:建议开启该参数

设置不当的风险与影响:若关闭该参数,可能导致无法记录系统中sql执行消耗的cpu时间,不利于慢sql分析信息。

asp_log_directory

参数说明asp_flush_mode设置为all或者file时,asp_log_directory决定存放服务器asp日志文件的目录。它可以是绝对路径,或者是相对路径(相对于数据目录的路径),仅sysadmin用户可以访问。

  • 合法路径:用户对此路径有读写权限。
  • 非法路径:用户对此路径无读写权限。

参数类型:字符串

参数单位:

取值范围:合法目录路径。

默认值:安装时指定。

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

设置建议:请在充分测试验证后进行设置。

设置不当的风险与影响:当配置文件中asp_log_directory的值为非法路径时,会导致集群无法重新启动。

perf_directory

参数说明perf_directory决定性能视图打点任务输出文件的目录,仅sysadmin用户可以访问。它可以是绝对路径,或者是相对路径(相对于数据目录的路径)。

  • 合法路径:用户对此路径有读写权限。
  • 非法路径:用户对此路径无读写权限。

参数类型:字符串

参数单位:

取值范围:合法目录路径。

默认值:安装时指定。

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

设置建议:推荐使用默认值。

设置不当的风险与影响:当配置文件中perf_directory的值为非法路径时,会导致集群无法重新启动。

enable_stmt_track

参数说明控制是否开启Full/Slow SQL捕获功能。

在x86架构集中式部署下,硬件配置规格为32核CPU/256GB内存,使用Benchmark SQL 5.0工具测试性能,开关此参数性能影响约1.2%。

参数类型:布尔型

参数单位:

取值范围:

  • on:表示开启Full/Slow SQL捕获功能。
  • off:表示关闭Full/Slow SQL捕获功能。

默认值:on

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

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

track_stmt_parameter

参数说明:开启track_stmt_parameter后,在statement_history中记录的执行语句不再进行归一化操作,可以显示完整SQL语句信息,辅助DBA进行问题定位;其中对于简单查询,显示完整语句信息;对于PBE语句,显示完整语句信息的同时,追加每个变量数值信息,格式为“query string;parameters:$1=value1,$2=value2,...”,该参数提供的目的是为用户呈现全量SQL信息,不受track_activity_query_size参数控制。对于PBE类型语句且走SQL Bypass逻辑时,参数直接下发到DN,故在CN查询statement_history无法获取完整语句数信息,同时由于DN无Query字符串信息,故在DN查询statement_history中也无法获取完整语句信息。

参数类型:布尔型

参数单位:

取值范围:

  • on:表示开启显示完整SQL语句信息的功能。
  • off:表示关闭显示完整SQL语句信息的功能。

默认值:off

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

设置建议:推荐使用默认值。

设置不当的风险与影响:若SQL语句普遍较长,会有更大的内存和磁盘的空间占用。

track_stmt_session_slot

参数说明设置一个session缓存的最大的全量SQL和慢SQL的数量,超过这个数量,新的语句执行将不会被跟踪,直到落盘线程将缓存语句落盘,留出空闲的空间。

参数类型:整型

参数单位:

取值范围:0 ~ 2147483647

默认值:1000

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

设置建议:推荐使用默认值。

设置不当的风险与影响:每个被占用的slot内存约800bit左右,具体值由语句复杂度决定。业务压力大的场景,若该值过大,会有内存快速膨胀的影响。该值过小时,可能会遗漏需要分析的语句。

track_stmt_details_size

参数说明设置单语句可以收集的最大的执行事件的大小。该值影响statement_history表中details字段的锁信息。

参数类型:整型

参数单位:byte

取值范围:0 ~ 100000000

默认值:4096

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。取值不能带单位。

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

track_stmt_retention_time

参数说明组合参数,控制全量/慢SQL记录的保留时间。以60秒为周期读取该参数,并执行清理超过保留时间的记录,仅sysadmin用户可以访问。

参数类型:字符串

参数单位:

取值范围:

该参数分为两部分,形式为'full sql retention time, slow sql retention time',这两个部分的具体含义如下:

  • full sql retention time:全量SQL保留时间,取值范围为0 ~ 86400,单位为秒。
  • slow sql retention time:慢SQL的保留时间,取值范围为0 ~ 604800,单位为秒。

默认值:"3600,604800"

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

设置建议:推荐使用默认值。

设置不当的风险与影响:如果设置保留时间太长,可能会占用较多空间;太短可能会影响数据保留时间太短,导致缺少问题定位手段,影响诊断。

track_stmt_stat_level

参数说明控制语句执行跟踪的级别。

参数类型:字符串

参数单位:

取值范围:

该参数分为两部分,形式为'full sql stat level, slow sql stat level',这两个部分的具体含义如下:

  • 第一部分为全量SQL跟踪级别,取值范围为OFF、L0、L1、L2。
  • 第二部分为慢SQL的跟踪级别,取值范围为OFF、L0、L1、L2。

若全量SQL跟踪级别值为非OFF,则当前SQL跟踪级别值为全量SQL和慢SQL的较高级别(L2 > L1 >L0),级别说明请参见《开发指南》的“系统表和系统视图 > 系统表 > 其他系统表 > STATEMENT_HISTORY”中的“STATEMENT_HISTORY字段”表格。

默认值:"OFF,L0"

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

设置建议:推荐使用默认值。

设置不当的风险与影响:打开全量SQL跟踪功能会影响性能,并可能会占用大量的磁盘空间。

track_stmt_standby_chain_size

参数说明:组合参数,控制备机快/慢SQL记录的最大占用内存与磁盘空间。仅SysAdmin用户可以访问。

参数类型:字符串

参数单位:

取值范围:

该参数分为四部分,形式为'Full SQL memory size, Full SQL disk size, Slow SQL memory size, Slow SQL disk size' ,这四个部分的具体含义如下:

Full SQL与Slow SQL分开存放于不同位置,因此使用了四个值进行控制。

  • Full SQL memory size:保留的快SQL的最大内存占用空间,取值范围为[16, 1024],单位为MB。
  • Full SQL disk size:保留的快SQL的最大磁盘占用空间,取值范围为[512, 1048576],单位为MB。
  • Slow SQL memory size:保留的慢SQL的最大内存占用空间,取值范围为[16, 1024],单位为MB。
  • Slow SQL disk size:保留的慢SQL的最大磁盘占用空间,取值范围为[512, 1048576],单位为MB。

其中内存值不可大于磁盘值。

默认值:"32, 1024, 16, 512"

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

设置建议:推荐使用默认值。

设置不当的风险与影响:如果设置参数值过大,可能会占用大量的内存或磁盘空间;参数值过小,可能会遗漏需要分析的语句。

track_stmt_flush_mode

参数说明控制全量SQL的存储模式。

参数类型字符串

参数单位

取值范围

该参数分为两部分,形式为'full sql flush mode, slow sql flush mode',这两个部分的具体含义如下:

  • 第一部分为全量SQL跟踪模式,取值可为MEMORY、FILE。参数设置为MEMORY,会记录全量SQL语句到内存中;参数设置为FILE,会记录全量SQL语句到磁盘文件中。
  • 第二部分为慢SQL跟踪模式,当前版本取值仅为FILE。参数设置为FILE,会记录慢SQL语句到磁盘文件中。

默认值"FILE,FILE"

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

设置建议:推荐使用默认值。

设置不当的风险与影响:如果设置参数为“MEMORY,FILE”会打开内核支持全量SQL功能,会占用一定共享内存,内存大小由track_stmt_shm_size参数控制。

track_stmt_shm_size

参数说明控制全量SQL共享内存的大小。

参数类型整型

参数单位byte

取值范围134217728 ~ 1073741824

默认值134217728

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

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

concurrent_dml_mode

参数说明对于启用了更新分布列功能的表(即表属性“enable_update_distkey”为“on”),针对该表上出现的DML并发执行冲突(锁冲突),指定冲突的处理方式。

该参数仅在DN节点上生效。

参数类型整型

参数单位

取值范围0 ~ 1

  • 0:宽松模式,即出现冲突后,后获取锁的DML语句不报错。
  • 1:严格模式,即出现冲突后,后获取锁的DML语句将会终止,并输出错误信息。

默认值0

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

设置建议:可参考取值范围描述进行设置。若预期冲突后,后获取锁DML语句不报错,则可设置为0;若预期冲突后,后获取锁的DML语句终止且报错,则可设置为1。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

相关文档