设置Virtual Segment内存使用

VSEG_RESOURCE_QUOTA指的是一个virtual segment中使用的内存数量。默认值是256MB。比如一个资源管理队列可以使用的资源是8GB,如果VSEG_RESOURCE_QUOTA为256MB,则这个资源管理队列可以分配的最大virtual segment数为8GB/256MB = 32个。如果我们使用512MB,则最多可以分配8GB/512MB = 16个。

VSEG_RESOURCE_QUOTA=‘mem:{128mb | 256mb | 512mb | 1024mb | 2048mb | 4096mb | 8192mb | 16384mb | 1gb | 2gb | 4gb | 8gb | 16gb}’

使用大的VSEG_RESOURCE_QUOTA有时可以避免聚集,连接等操作的spilling,因为每个segment可以使用更多的内存。

如果发现有些语句频繁出现spilling,可以适当调大VSEG_RESOURCE_QUOTA。

例如:

CREATE RESOURCE QUEUE adhoc2 WITH (PARENT='department3', ACTIVE_STATEMENTS=3,
MEMORY_LIMIT_CLUSTER=50%, CORE_LIMIT_CLUSTER=50%, VSEG_RESOURCE_QUOTA='mem:512MB');