
# 锁管理
在GaussDB中，并发执行的事务由于竞争资源会导致死锁。本节介绍的参数主要管理事务锁的机制。
#### deadlock_timeout
**参数说明：**设置死锁超时检测时间。当申请的锁超过设定值时，系统会检查是否产生了死锁。该参数仅针对常规锁生效。
**参数类型：**整型
**参数单位：**ms（毫秒）
**取值范围：**1 \~ 2147483647
**默认值：**1000（即1s）
**设置方式：** 该参数属于SUSET类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**
- 死锁的检查代价是比较高的，服务器不会在每次等待锁的时候都运行这个过程。在系统运行过程中，不经常出现死锁情况，因此在检查死锁前只需等待一个相对较短的时间。deadlock_timeout增加，可以减少死锁检查浪费的时间，但是会减慢真正的死锁错误报告的速度。在负载过重的服务器上，用户可能需要增大deadlock_timeout。这个值的设置应该超过事务持续时间，这样可以减少在锁释放之前就开始死锁检查的问题。
- 当设置[log_lock_waits](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0287.html#ZH-CN_TOPIC_0000002558946617__zh-cn_topic_0000002526896434_zh-cn_topic_0000002338524494_zh-cn_topic_0059778400_s0e43c2815b8a4f369d5b150535d1703f)为on时，deadlock_timeout决定一个等待时间来将查询执行过程中的锁等待耗时信息写入日志。如果要研究锁延时情况，可以设置deadlock_timeout值比正常情况小。
**设置不当的风险与影响：**设置过大时，会减慢死锁错误报告的速度；设置过小时，会出现锁释放前就开始检测死锁的问题。
#### lockwait_timeout
**参数说明：**除update_lockwait_timeout和ddl_lockwait_timeout参数的控制范围之外，其余所有锁类型的申请过程中，单个锁的最长等待时间均由此参数统一控制。若上述锁的等待时长超出该参数设定值，系统会报错。该参数仅针对常规锁生效。
**参数类型：**整型
**参数单位：**ms（毫秒）
**取值范围：**0 \~ 2147483647
**默认值：**1200000（20min）
**设置方式：** 该参数属于USERSET类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。例如，不带单位取值900，表示lockwait_timeout为900ms；带单位取值20min，表示lockwait_timeout为20min。取值如果要带单位，必须为ms、s、min、h、d。
**设置建议：**一般设置为默认值。根据业务场景中上述锁冲突超时时间设定该参数的具体数值。若设置小于1s且不为0，则上述锁也会至少等待1s才报告超时。如需实现所有锁类型无限期等待，则需将此参数设置为0（update_lockwait_timeout和ddl_lockwait_timeout参数不具备控制无限等锁行为的功能）。
**设置不当的风险与影响：**申请上述锁时若发生锁冲突，参数设置过大将导致阻塞时间延长；设置过小则可能引发更多的上述锁超时报错。
#### update_lockwait_timeout
**参数说明：**在业务允许并发更新的情况下，该参数控制并发更新同一行数据时，申请单个transactionid锁或tuple锁的最长等待时间。当申请上述锁的等待时间超过设定值时，系统会报错。该参数仅针对常规锁生效。
**参数类型：**整型
**参数单位：**ms（毫秒）
**取值范围：**0 \~ 2147483647
**默认值：**120000（2min）
**设置方式：** 该参数属于SUSET类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。例如，不带单位取值900，表示update_lockwait_timeout为900ms；带单位取值2min，表示update_lockwait_timeout为2min。取值如果要带单位，必须为ms、s、min、h、d。
**设置建议：**一般设置为默认值。设置值主要取决于并发更新同一行的事务的workload。一般TP业务，执行时间较短小于两分钟，因此等待并发更新事务提交时间较短，按默认值2min误报锁超时概率较小；如果业务出现大量并发更新同一行事务，执行时间超过两分钟，可以调大该参数避免等锁超时误报。若设置小于1s，则上述锁也会至少等待1s才报告超时。
**设置不当的风险与影响：**并发更新同一行数据时，若申请transactionid锁或tuple锁发生锁冲突，参数设置过大将导致阻塞时间延长；设置过小则可能引发更多transactionid锁或tuple锁超时报错。
#### ddl_lockwait_timeout
**参数说明：**该参数控制部分DDL业务对表对象、索引对象、存储过程/package/函数对象，申请高级锁（5\~8级锁）时单个锁的最长等待时间。当申请的锁等待时间超过设定值时，系统会报错。
**参数类型：**整型
**参数单位：**ms（毫秒）
**取值范围：**0 \~ 2147483647
**默认值：**120000（2min）
**设置方式：** 该参数属于SUSET类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。例如，不带单位取值900，表示ddl_lockwait_timeout为900ms；带单位取值2min，表示ddl_lockwait_timeout为2min。取值如果要带单位，必须为ms、s、min、h、d。
**设置建议：**一般设置为默认值。根据DDL业务对上述高级锁超时时间的需要，预期最大等待时间是多少，该参数就设置为多少。若设置小于1s，则上述锁也会至少等待1s才报告超时。
**设置不当的风险与影响：**DDL业务申请上述高级锁时若发生锁冲突，参数设置过大将导致阻塞时间延长；设置过小则可能引发更多的高级锁超时报错。
#### max_locks_per_transaction
**参数说明：**当数据库连接数达到最大时，每个事务能够持有对象锁的平均数量。
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
这个参数并不严格限制每个事务最多可以持有多少对象锁。如果连接数没有达到最大值[max_connections](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0259.html#ZH-CN_TOPIC_0000002527986738__zh-cn_topic_0000002527056202_zh-cn_topic_0000002338364430_zh-cn_topic_0059777636_sa723b719fa70453bb7ec27f323d41c79)，那么每个事务能够持有对象锁的平均数量会增大。
**参数类型：**整型
**参数单位：**无
**取值范围：**10 \~ 2147483647
**默认值：**256
**设置方式：** 该参数属于POSTMASTER类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**
- 共享锁的哈希表的大小是以假设任意时刻最多只有max_locks_per_transaction\*([max_connections](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0259.html#ZH-CN_TOPIC_0000002527986738__zh-cn_topic_0000002527056202_zh-cn_topic_0000002338364430_zh-cn_topic_0059777636_sa723b719fa70453bb7ec27f323d41c79)+[max_prepared_transactions](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0263.html#ZH-CN_TOPIC_0000002527986740__zh-cn_topic_0000002527056222_zh-cn_topic_0000002372402457_zh-cn_topic_0059777577_s0baf9251722144d492151b31104dd73c)) 个独立的对象需要被锁住为基础进行计算的，进而推导出max_locks_per_transaction \>= 业务事务的并发数 \* 业务的每个事务加对象锁的数目/(max_connections+max_prepared_transactions) ，计算结果不超过参数取值范围的上限。
- 不超过设定数量的多个对象可以在任意时刻同时被锁定。当在一个事务里面修改很多不同的表时，可能需要提高这个参数值。
- 增大这个参数可能导致GaussDB请求更多的System V共享内存，有可能超过操作系统的缺省配置，导致数据库启动失败。
- 当运行备机时，请将此参数设置不小于主机上的值，否则在备机上查询操作不被允许。
- 设置该参数变小后，若在重启前备机节点故障，则该备机会故障恢复失败。建议参数设置回原值后重启恢复环境。
- 在降规格及容灾场景下，变更此参数时不建议频繁DDL，否则会导致内存报错。
**设置不当的风险与影响：**设置过大时，可能导致数据库启动失败。
#### max_pred_locks_per_transaction
**参数说明：**当数据库连接数达到最大时，每个事务能够持有断定锁的平均数量。
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
这个参数并不严格限制每个事务最多可以持有多少断定锁。如果连接数没有达到最大值[max_connections](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0259.html#ZH-CN_TOPIC_0000002527986738__zh-cn_topic_0000002527056202_zh-cn_topic_0000002338364430_zh-cn_topic_0059777636_sa723b719fa70453bb7ec27f323d41c79)，那么每个事务能够持有断定锁的平均数量会增大。
**参数类型：**整型
**参数单位：**无
**取值范围：**10 \~ 2147483647‬
**默认值：**64
**设置方式：** 该参数属于POSTMASTER类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**
- 共享的断定锁表的大小是以假设任意时刻最多只有max_pred_locks_per_transaction\*([max_connections](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0259.html#ZH-CN_TOPIC_0000002527986738__zh-cn_topic_0000002527056202_zh-cn_topic_0000002338364430_zh-cn_topic_0059777636_sa723b719fa70453bb7ec27f323d41c79)+[max_prepared_transactions](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0263.html#ZH-CN_TOPIC_0000002527986740__zh-cn_topic_0000002527056222_zh-cn_topic_0000002372402457_zh-cn_topic_0059777577_s0baf9251722144d492151b31104dd73c)) 个独立的对象需要被锁住为基础进行计算的。不超过设定数量的多个对象可以在任一时刻同时被锁定。当在一个事务里面修改很多不同的表时，可能需要提高这个默认数值。只能在服务器启动的时候设置。
- 增大这个参数可能导致GaussDB请求更多的System V共享内存，有可能超过操作系统的缺省配置。
**设置不当的风险与影响：**设置过大时，可能导致数据库启动失败。
#### gs_clean_timeout
**参数说明：**GaussDB数据库中事务处理使用的是两阶段提交方法，当有两阶段事务残留时，该事务通常会持有表级锁，导致其它连接无法加锁，此时需要调用gs_clean工具对集群中两阶段事务进行清理，gs_clean_timeout是控制Coordinator周期性调用gs_clean的时间。gs_clean也可用来定时清理残留临时表。
**参数类型：**整型
**参数单位：**s（秒）
**取值范围：**0 \~ 2147483
**默认值：**60
**设置方式：** 该参数属于SIGHUP类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。例如：不带单位取值1，表示gs_clean_timeout为1s；带单位取值1min，表示gs_clean_timeout为1min。取值如果要带单位，必须为s、min、h、d。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**设置过大时，会使两阶段事务和残留临时表清理周期延长，可能导致清理前其他连接无法加锁。
#### partition_lock_upgrade_timeout
**参数说明：**在执行某些查询语句的过程中，需要将分区表上的锁级别由允许读的ExclusiveLock级别升级到读写阻塞的AccessExclusiveLock级别。如果此时已经存在并发的读事务，那么该锁升级操作将阻塞等待。partition_lock_upgrade_timeout为尝试锁升级的等待超时时间。
举例：在分区表上进行MERGE PARTITION和CLUSTER PARTITION操作时，都利用了临时表进行数据重排和文件交换，为了最大程度提高分区上的操作并发度，在数据重排阶段给相关分区加锁ExclusiveLock，在文件交换阶段加锁AccessExclusiveLock。加锁方式是尝试性加锁，加锁成功了则立即返回，不成功则等待50ms后继续下次尝试，加锁超时时间使用会话级设置参数partition_lock_upgrade_timeout。
**参数类型：**整型
**参数单位：**s（秒）
**取值范围：**-1 \~ 3000。-1表示无限等待，即不停地尝试锁升级，直到加锁成功。
**默认值：**1800
**设置方式：** 该参数属于USERSET类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**设置为-1时，长时间无法升级锁可能导致业务阻塞。
#### fault_mon_timeout
**参数说明：**轻量级死锁检测周期。
**参数类型：**整型
**参数单位：**min（分钟）
**取值范围：**0 \~ 1440
**默认值：**5
**设置方式：** 该参数属于SIGHUP类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**设置过大时，会无法及时发现死锁问题而减慢死锁错误报告的速度。
#### enable_online_ddl_waitlock
**参数说明：**控制DDL是否会阻塞等待pg_advisory_lock/pgxc_lock_for_backup等集群锁。
**参数类型：**布尔型
**参数单位：**无
**取值范围：**
- on：表示开启。
- off：表示关闭。
**默认值：**off
**设置方式：** 该参数属于SIGHUP类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**主要用于OM在线操作场景，不建议用户设置。
**设置不当的风险与影响：**修改该参数取值可能导致集群出现意料之外的结果，请保持默认值。
#### xloginsert_locks
**参数说明：**控制用于并发写预写式日志锁的个数。主要用于提高写预写式日志的效率。
**参数类型：**整型
**参数单位：**无
**取值范围：**1 \~ 1000。若CPU为NUMA架构，数值必须为NUMA节点数量的整数倍。
**默认值：**16
**设置方式：** 该参数属于POSTMASTER类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**ARM CPU架构在并发压力大的场景下，可能因为原子操作的竞争而导致概率性的性能抖动，可以适当降低该参数值而获取相对稳定的运行性能。
**设置不当的风险与影响：**请在充分理解参数含义，并经过测试验证后进行修改。
#### num_internal_lock_partitions
**参数说明：**控制内部轻量级锁分区的个数。主要用于各类场景的性能调优。
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
- 参数内容以关键字和数字的KV方式组织，各个不同类型锁之间以逗号隔开。
- 先后顺序对设置结果不影响。例如"CLOG_PART=256,CSNLOG_PART=512"等同于"CSNLOG_PART=512,CLOG_PART=256"。
- 重复设置同一关键字时，以最后一次设置为准。例如"CLOG_PART=256,CLOG_PART=2"，设置的结果为CLOG_PART=2。
 
**参数类型：**字符串
**参数单位：**无
**取值范围：**
- CLOG_PART：CLOG文件控制器的个数。最小值为1，最大值为256。
- CSNLOG_PART：CSNLOG文件控制器的个数。最小值为1，最大值为512。
- LOG2_LOCKTABLE_PART：常规锁表锁分区个数的2对数。最小值4，即锁分区数为16；最大值为16，即锁分区数为65536。
- TWOPHASE_PART：两阶段事务锁的分区数。最小值为1，最大值为64。
- FASTPATH_PART：每个线程可以不通过主锁表拿锁的最大锁个数。最小值为20，最大值为10000。
- FASTPATH_PROCEDURE_PART：每个线程可以不通过主锁表申请的存储过程对象锁的最大锁个数。最小值为0，最大值为10000。
**默认值：**
- CN："CLOG_PART=256,CSNLOG_PART=512,LOG2_LOCKTABLE_PART=4,TWOPHASE_PART=1,FASTPATH_PART=20,FASTPATH_PROCEDURE_PART=100"。
- DN：
  - "CLOG_PART=256,CSNLOG_PART=512,LOG2_LOCKTABLE_PART=4,TWOPHASE_PART=1,FASTPATH_PART=1000,FASTPATH_PROCEDURE_PART=100"（196核CPU/1536G内存，128核CPU/1024G内存，104核CPU/1024G内存，96核CPU/1024G内存）；
  
  - "CLOG_PART=256,CSNLOG_PART=512,LOG2_LOCKTABLE_PART=4,TWOPHASE_PART=1,FASTPATH_PART=800,FASTPATH_PROCEDURE_PART=100"（96核CPU/768G内存，80核CPU/640G内存，80核CPU/512G内存，72核CPU/576G内存）；
  
  - "CLOG_PART=256,CSNLOG_PART=512,LOG2_LOCKTABLE_PART=4,TWOPHASE_PART=1,FASTPATH_PART=400,FASTPATH_PROCEDURE_PART=100"（64核CPU/512G内存，60核CPU/480G内存）；
  
  - "CLOG_PART=256,CSNLOG_PART=512,LOG2_LOCKTABLE_PART=4,TWOPHASE_PART=1,FASTPATH_PART=200,FASTPATH_PROCEDURE_PART=100"（32核CPU/256G内存）；
  
  - "CLOG_PART=256,CSNLOG_PART=512,LOG2_LOCKTABLE_PART=4,TWOPHASE_PART=1,FASTPATH_PART=100,FASTPATH_PROCEDURE_PART=100"（16核CPU/128G内存，8核CPU/64G内存，4核CPU/32G内存）；
  
  - "CLOG_PART=8,CSNLOG_PART=16,LOG2_LOCKTABLE_PART=4,TWOPHASE_PART=1,FASTPATH_PART=100,FASTPATH_PROCEDURE_PART=100"（4核CPU/16G内存）。
   
**设置方式：** 该参数属于POSTMASTER类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**
- CLOG_PART：增大该值可以提高CLOG日志写入效率，提升事务提交性能，但是会增大内存使用；减小该值会减少相应内存使用，但可能使得CLOG日志写入冲突变大，影响性能。
- CSNLOG_PART：增大该值可以提高CSNLOG日志写入效率，提升事务提交性能，但是会增大内存使用；减小该值会减少相应内存使用，但可能使得CSNLOG日志写入冲突变大，影响性能。
- LOG2_LOCKTABLE_PART：增大该值可以提升正常流程常规锁获取锁的并行度，但是会增大内存使用，对于等待事件在LockMgrLock时，可以调大该锁增加性能。
- TWOPHASE_PART：调大该值可以提高两阶段事务提交的并发数，但是会增大内存使用。
- FASTPATH_PART：对于分区表读取、更新、插入、删除操作且等待事件在LockMgrLock时，可以通过调大该值避免获取LockMgrLock以提升性能，建议调整数量大于等于分区数\*（1+本地索引数量）+全局索引数量+10，调大该值可能增加锁转移和锁消除时的耗时，并会额外增加内存。fastpath增量内存=((fastpath增加量/20)\*8 + fastpath增加量\*12) \* 线程池大小，单位是字节。
- FASTPATH_PROCEDURE_PART：对于执行存储过程等待事件在LockMgrLock时，可以通过调大该值避免获取LockMgrLock以提升性能，建议调整数量大于存储过程嵌套调用的最大深度，调大该值可能增加锁转移和锁消除时的耗时，并会额外增加内存。增量内存=((参数值增加量/20)\*8 + 参数值增加量\*12) \* 线程池大小，单位是字节。
**设置不当的风险与影响：**设置不当可能会影响数据库性能。
#### enable_wait_exclusive_lock
**参数说明：**控制ProcArrayLock的排他锁hang死检测与治愈功能的开关。
**参数类型：**布尔型
**参数单位：**无
**取值范围：**
- on：表示开启。
- off：表示关闭。
**默认值：**on
**设置方式：** 该参数属于SIGHUP类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**请在充分理解参数含义，并经过测试验证后进行修改。
#### barrier_lock_timeout
**参数说明：**持有barrier锁的超时时间。
**参数类型：**整型
**参数单位：**s（秒）
**取值范围：**0 \~ 3600
**默认值：**30
**设置方式：** 该参数属于USERSET类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**请在充分理解参数含义，并经过测试验证后进行修改。
#### enable_xid_abort_check
**参数说明：**事务提交时校验事务ID回滚开关是否开启。
**参数类型：**布尔型
**参数单位：**无
**取值范围：**
- on：表示开启。
- off：表示关闭。
**默认值：**on
**设置方式：** 该参数属于SIGHUP类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**请在充分理解参数含义，并经过测试验证后进行修改。
#### enable_partition_ddl_lowlevel_lock
**参数说明：**执行分区表DDL（ADD/DROP/TRUNCATE/EXCHANGE/MOVE/RENAME）的过程中，会对表加锁。该参数用于控制表的锁级别。
**参数类型：**布尔型
**参数单位：**无
**取值范围：**
- on：表示对表加4级锁，此时允许对该表的其他分区并发执行DDL/DML。
- off：表示对表加8级锁，此时不允许对该表的其他分区并发执行DDL/DML。
**默认值：**升级而来的数据库实例默认为off，新安装的数据库实例默认为on。
**设置方式：** 该参数属于SIGHUP类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**
- 当参数为on时，允许对表的其他分区并发执行DDL/DML，具有性能优势。但是由于网络延时等因素，并发的DDL和DML在不同DN上的实际执行顺序可能不同，会导致DN间的分布式死锁。
- 当参数为off时，不允许对表的其他分区并发执行DDL/DML，无性能优势，但是没有死锁风险。
 
