Undo
undo_space_limit_size
参数说明:用于控制undo强制回收阈值,达到阈值的80%启动强制回收。建议设置undo_space_limit_size参数不小于undo_limit_size_per_transaction参数。
参数类型:整型
参数单位:页面(8kB)
取值范围:102400~2147483647,对应的默认单位为页面。
默认值:256GB
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。例如,取值10000,表示undo_space_limit_size为10000页;取值10000kB,表示undo_space_limit_size为10000kB。取值如果要带单位,必须为kB、MB、GB,不能为TB。
设置建议:一般情况保持默认值即可。如果磁盘空间很小,无法满足默认值的需求,可以按需将该参数调小;如果业务中存在长事务或大事务,需要根据磁盘情况将 undo_space_limit_size 调大,具体调整值可以参考 gs_stat_undo 系统函数的“info”列,详见《开发指南》中“SQL参考 > 函数和操作符 > 系统管理函数 > Undo 系统函数”章节的“gs_stat_undo 参数说明”表。
undo_limit_size_per_transaction
参数说明:用于控制单事务undo分配空间阈值,达到阈值时事务报错回滚。建议设置undo_limit_size_per_transaction参数不大于undo_space_limit_size参数。若设置的undo_limit_size_per_transaction参数大于undo_space_limit_size参数,用户调用show undo_limit_size_per_transaction命令查询参数值时,显示出来的值和用户设置的值仍保持一致,只是在使用时会取undo_space_limit_size和undo_limit_size_per_transaction两者的较小值,作为实际的单事务undo分配空间阈值。
参数类型:整型
参数单位:页面(8kB)
取值范围:256~2147483647,对应的默认单位为页面。如果设置的值超过了134217728(即1TB),则实际生效的值为134217728。
默认值:32GB
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。例如,取值10000,表示undo_limit_size_per_transaction为10000页;取值10000kB,表示undo_limit_size_per_transaction为10000kB。取值如果要带单位,必须为kB、MB、GB,不能为TB。
设置建议:一般情况保持默认值即可。如果磁盘空间/内存空间很小,无法满足默认值的需求,可以按需将该参数调小;如果业务中存在长事务或大事务,单个事务内产生 Undo 记录量大于该参数设置值,需要根据磁盘情况将 undo_limit_size_per_transaction 调大,具体调整值可以参考 gs_stat_undo 系统函数的“info”列,详见《开发指南》中“SQL参考 > 函数和操作符 > 系统管理函数 > Undo 系统函数”章节的“gs_stat_undo 参数说明”表。如果设置 undo_limit_size_per_transaction 超过 1TB,可能会影响系统的性能和稳定性,如果设置的值超过了134217728(即1TB),用户调用show undo_limit_size_per_transaction命令查询参数值时,显示的值和用户设置的值保持一致,但实际生效的值为134217728。