GreenPlum报错ERROR: Canceling query because of high VMEM usage 或 ERROR: Out of memory Vmem limit reached

0    308    1

Tags:

👉 本文共约977个字,系统预计阅读时间或需4分钟。

现象

查询报错:ERROR: Canceling query because of high VMEM usage.

ERROR: Canceling query because of high VMEM usage. Used: 16368MB, available 1900MB, red zone: 17110MB (runaway_cleaner.c:202) (seg14 slice2 192.110.26.106:6002 pid=899) (runaway_cleaner.c:202) CONTEXT: SQL statement "refresh materialized view mv_ygz with data" PL/pgSQL function refresh_mv_ygz() line 3 at SQL statement

ERROR: Canceling query because of high VMEM usage. Used: 1235MB, available 204MB, red zone: 10444MB (runaway_cleaner.c:202) (seg8 110.111.111.77:6002 pid=31733) (runaway_cleaner.c:202)

ERROR: Out of memory (seg5 110.111.111.76:6002 pid=45050)
DETAIL: Vmem limit reached, failed to allocate 1022977928 bytes from tracker, which has 772 MB available

可能原因

1、在会话级别配置optimizer为off。

若数据量很小,但查询SQL复杂,若启用optimizer,则往往会报这个错,所以,此时可以在SQL级别禁用该参数。

参数optimizer表示运行SQL查询时启用或禁用GPORCA。 默认on。 如果禁用GPORCA,Greenplum数据库仅使用Postgres查询优化器。

GPORCA与Postgres查询优化器共存。 启用GPORCA后,Greenplum数据库会尽可能使用GPORCA为查询生成执行计划。 如果无法使用GPORCA,则使用Postgres查询优化器。

可以为数据库系统,单个数据库或会话或查询设置optimizer参数。

2、修改如下几个参数

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复