我收到错误
错误:无法写入临时文件的块 3478284:设备上没有剩余空间
运行以下查询时:
INSERT INTO summary SELECT t1.a, t1.b, SUM(t1.p) AS p, COUNT(t1.*) AS c,
t1.d, t1.r, DATE_TRUNC('month', t1.start) AS month, t2.t AS t, t2.h, t2.x
FROM raw1 t1, raw2 t2
WHERE t1.t2_id=t2.id AND (t2.t<>'a' OR t2.y) GROUP BY month, t, a, b, d, r, h, x
Run Code Online (Sandbox Code Playgroud)
表 t1 非常大,表 t2 非常大
Caused by: org.postgresql.util.PSQLException: ERROR: could not write block 3478284 of temporary file: No space left on device
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1592)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1327)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:192)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:350)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:304)
Run Code Online (Sandbox Code Playgroud)
任何提示表示赞赏。
在尝试完成您的请求时,Postgres 的临时垃圾场空间不足——解决这个问题的方法是运行一个更简单的查询(这可能没有帮助)或释放更多空间PGDATA/base/pgsql_tmp/
(如果你有VACUUM FULL
一段时间没有这样做了,现在可能是个好时机:-)
你也可以put pgsql_tmp
在它自己的分区上(注意权限,因为 Postgres 往往对这些事情很敏感)
请注意,我相信
pgsql_tmp
这些天是每个表空间,所以如果这不是主 (base
) 表空间适当替代:-)
归档时间: |
|
查看次数: |
22738 次 |
最近记录: |