Java org.postgresql.util.PSQLException:错误:共享内存不足
我使用JAVA调用了一个包含200多条DROP Table语句的函数,并且得到org.postgresql.util.psqleException:ERROR:共享内存不足。 我应该采取什么样的方法来避免共享备忘录失效Java org.postgresql.util.PSQLException:错误:共享内存不足,java,postgresql,Java,Postgresql,我使用JAVA调用了一个包含200多条DROP Table语句的函数,并且得到org.postgresql.util.psqleException:ERROR:共享内存不足。 我应该采取什么样的方法来避免共享备忘录失效 PS:限制是我不能更改任何与PostgresSQL相关的参数。如果错误的原因在服务器端:在PostgreSQL中,函数总是在事务内部执行DO块是匿名函数,处理方式相同。而且,由于在PostgreSQL中,即使是像CREATE或DROP这样的DML命令也是事务性的,因此这些命令也强
PS:限制是我不能更改任何与PostgresSQL相关的参数。如果错误的原因在服务器端:在PostgreSQL中,函数总是在事务内部执行
DO
块是匿名函数,处理方式相同。而且,由于在PostgreSQL中,即使是像CREATE
或DROP
这样的DML命令也是事务性的,因此这些命令也强调了用于回滚
和提交
的常用资源
我的猜测是,删除大量大型表会消耗大量内存。
因此,如果您的函数中不需要事务行为,最简单的方法是将大型函数拆分为几个较小的函数。在单独的事务中调用每个函数。所谓“函数”是指服务器端函数还是Java方法?异常的原因是服务器端还是客户端?您的小信息位甚至不能提供足够的信息进行猜测。所谓函数,我指的是PostgresSQL函数(过程)。例外情况是在我调用JAVA端函数的末尾。