我有一个相当大的插入查询,在运行这个时,我的慢速磁盘在我复活的地方填满100%:
Transaction aborted because DBD::Pg::db do failed: ERROR: could not write to hash-join temporary file: No space left on device
听起来很可信,我有一个带有大量空间的快速驱动器,我可以使用而不是慢速磁盘,但我不想让快速磁盘成为默认的表空间或将表格移入快速移动到快速磁盘,我只想将作为插入查询的一部分生成的数据blob放在快速磁盘表空间上。这可能是PostgreSQL,如果是这样的话?
版本9.1
答案 0 :(得分:3)
您需要temp_tablespaces
配置指令。请参阅the docs。
用于排序大型数据集等目的的临时文件也是 在这些表空间中创建
在使用交互式SET temp_tablespaces
命令之前,您必须CREATE TABLESPACE
表空间。
SET LOCAL temp_tablespaces
可用于仅为当前事务设置它。