
# 语句磁盘空间管控
介绍与语句磁盘空间管控相关的参数，用于限制语句磁盘空间使用。
#### sql_use_spacelimit
**参数说明**：限制单个SQL在单个DN上，触发写盘操作时，所有类型写盘文件的总空间大小，管控的空间包括普通表、临时表以及中间结果集落盘占用的空间。系统管理员用户也受该参数限制。
**参数类型：**USERSET
**取值范围：**整型，-1\~INT_MAX，单位为KB。其中-1表示没有限制。
**默认值：**配置sql_use_spacelimit为实例所在磁盘空间总容量的10%。
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/note_3.0-zh-cn.png)
例如，执行语句中配置参数sql_use_spacelimit=100，当出现单DN写盘超过100kB时，DWS会主动终止该query的运行，并提示用户单DN写盘量超阈值。
```
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%。
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/notice_3.0-zh-cn.png)
SQL查询执行时使用的临时表空间不在此限制。
#### bi_page_reuse_factor
**参数说明**：行存表批量插入场景下，主备DN使用页复制进行数据同步时，可以复用的旧页面空闲空间的百分比。
**参数类型：**USERSET
**取值范围：**整型，0\~100，单位为%。其中0表示不对页面进行复用，全部申请新页面。
**默认值：**70
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/notice_3.0-zh-cn.png)
- 不建议将此值设置为50以下（0除外），如果复用页面的空闲空间较小的话，会使主备DN间传输过多的旧页面数据，从而导致批量插入性能下降。
- 不建议将此值设置为90以上，如果此值设置过高，会导致频繁查询空闲页面，但又无法复用旧页面，得不偿失。
 
