更新时间:2024-09-02 GMT+08:00

语句磁盘空间管控

介绍与语句磁盘空间管控相关的参数,用于限制语句磁盘空间使用。

sql_use_spacelimit

参数说明:限制单个SQL在单个DN上,触发写盘操作时,所有类型写盘文件的总空间大小,管控的空间包括普通表、临时表以及中间结果集落盘占用的空间。系统管理员用户也受该参数限制。

参数类型:USERSET

取值范围:整型,-1~INT_MAX,单位为KB。其中-1表示没有限制。

默认值:配置sql_use_spacelimit为实例所在磁盘空间总容量的10%。

例如,执行语句中配置参数sql_use_spacelimit=100,当出现单DN写盘超过100kB时,DWS会主动终止该query的运行,并提示用户单DN写盘量超阈值。

1
2
insert into user1.t1 select * from user2.t1;
ERROR:  The space used on DN (104 kB) has exceeded the sql use space limit (100 kB).

建议处理方式:

  • 优化语句,减少语句写盘占用空间。
  • 如果磁盘空间充足可以适当调大该参数。

temp_file_limit

参数说明:语句执行过程中触发落盘操作时,限制语句中单个线程落盘文件的总空间大小。例如,排序和哈希表使用的临时文件或者游标占用的临时文件。

此设置为会话级别的落盘文件控制。

参数类型:SUSET

取值范围:整型,-1~INT_MAX,单位为KB。其中-1表示没有限制。

默认值:配置temp_file_limit为实例所在磁盘空间总容量的10%。

SQL查询执行时使用的临时表空间不在此限制。

bi_page_reuse_factor

参数说明:行存表批量插入场景下,主备DN使用页复制进行数据同步时,可以复用的旧页面空闲空间的百分比。

参数类型:USERSET

取值范围:整型,0~100,单位为%。其中0表示不对页面进行复用,全部申请新页面。

默认值:70

  • 不建议将此值设置为50以下(0除外),如果复用页面的空闲空间较小的话,会使主备DN间传输过多的旧页面数据,从而导致批量插入性能下降。
  • 不建议将此值设置为90以上,如果此值设置过高,会导致频繁查询空闲页面,但又无法复用旧页面,得不偿失。