【发布时间】:2018-11-12 00:24:44
【问题描述】:
我有一个查询,凭直觉,应该可以正常工作。但是,几乎在执行后,我立即收到以下错误消息:
ERROR: could not write block 119518 of temporary file: No space left on device
Query failed
PostgreSQL said: could not write block 119518 of temporary file: No space left on device
我有大约 4.5GB 的可用存储空间。
我尝试通过将每个 CTE 替换为物化视图来减少内存使用量,希望能够减少对处理能力的需求。
另外。我已经采取了这些步骤——
--我将我们的 AWS 实例提升到内存优化的 db.r4.16xlarge。
--我运行了analyze verbose和vacuum full analyze
--我已经停止了所有其他进程
该查询在两个 CTE 中进行一些小处理,然后将一个表(大约 20M 行)与一个较小的查找表(大约 500K 行)连接起来。
【问题讨论】:
-
这个错误是因为你没有足够的磁盘空间而不是主存。
-
这样的事情需要多少磁盘空间?更具体地说,您对 AWS 实例大小有什么建议吗?
-
你能分享你正在使用的查询吗
-
是的,不够
标签: sql postgresql memory-management amazon-rds explain