SET SESSION MEMORYCAP
限制可以为当前 会话中的任何请求分配的内存量。此限制仅适用于当前会话;不限制多个会话使用的内存总量。
语法
SET SESSION MEMORYCAP limit
参数
- 限制
- 以下几项之一:
-
'max‑expression':一个字符串值,用于指定内存限制,为以下几项之一:
-
int%
— 将最大值表示为 资源管理器可用总内存的百比,其中 int 为 0 至 100 之间的整数。例如:MEMORYCAP '40%'
-
int{K|M|G|T}
— 以 KB、MB、GB 或 TB 表示内存分配。例如:MEMORYCAP '10G'
-
-
=DEFAULT
:将此会话中查询的内存上限设置为用户的MEMORYCAP
值。新会话最初将设置为此值。 -
NONE
:移除此会话的内存上限。
-
特权
-
超级用户可以将会话内存上限增加到任意值。
-
非超级用户只能将会话内存上限设置为不大于自己的用户设置的值。
示例
将会话内存上限设置为 2 GB:
=> SET SESSION MEMORYCAP '2G';
SET
=> SHOW MEMORYCAP;
name | setting
-----------+---------
memorycap | 2097152
(1 row)
将内存上限恢复为用户配置文件中指定的默认设置:
=> SET MEMORYCAP=DEFAULT;
SET
=> SHOW MEMORYCAP;
name | setting
-----------+---------
memorycap | 2013336
(1 row)