Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java org.postgresql.util.PSQLException:错误:共享内存不足_Java_Postgresql - Fatal编程技术网

Java org.postgresql.util.PSQLException:错误:共享内存不足

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命令也是事务性的,因此这些命令也强

我使用JAVA调用了一个包含200多条DROP Table语句的函数,并且得到org.postgresql.util.psqleException:ERROR:共享内存不足。 我应该采取什么样的方法来避免共享备忘录失效


PS:限制是我不能更改任何与PostgresSQL相关的参数。

如果错误的原因在服务器端:在PostgreSQL中,函数总是在事务内部执行
DO
块是匿名函数,处理方式相同。而且,由于在PostgreSQL中,即使是像
CREATE
DROP
这样的DML命令也是事务性的,因此这些命令也强调了用于
回滚
提交
的常用资源

我的猜测是,删除大量大型表会消耗大量内存。
因此,如果您的函数中不需要事务行为,最简单的方法是将大型函数拆分为几个较小的函数。在单独的事务中调用每个函数。

所谓“函数”是指服务器端函数还是Java方法?异常的原因是服务器端还是客户端?您的小信息位甚至不能提供足够的信息进行猜测。所谓函数,我指的是PostgresSQL函数(过程)。例外情况是在我调用JAVA端函数的末尾。