PG报错too many range table entries

0    78    1

Tags:

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

问题现象

postgresql中update执行语句报错too many range table entries

源sql

如果把update改写成select,可以执行成功

主键和分区是这样,分区总共有400个

sql逻辑有很多优化点,但是这里不讨论优化。重点是分析为什么update会报错,和为什么select和update会有区别。

执行explain update报错如下:

explain卡了18秒,然后报错

源码分析

报错直接抛出了源码的位置LOCATION: add_rte_to_flat_rtable, setrefs.c:451 ,直接找到该源码

src/backend/optimizer/plan/setrefs.c其注释是说setrefs.c是完成计划树后的相关工作的

找到第451行的函数:

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
PG报错too many range table entries后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“小麦苗博客”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

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

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。另外,Oracle和MySQL OCP包过哟,可随时联系麦老师。
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部

麦老师提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,非诚勿扰,谢谢!