0

我有一个相当大的插入查询,在运行它时,我的慢速磁盘在我恢复时填充到 100%:

Transaction aborted because DBD::Pg::db do failed: ERROR:  could not write to hash-join temporary file: No space left on device

听起来很可信,我有一个带有大量空间的快速驱动器,我可以使用它来代替慢速磁盘,但我不想将快速磁盘设置为默认表空间或将插入的表移动到快速磁盘,我只希望作为插入查询的一部分生成的数据块位于快速磁盘表空间上。这可能是 PostgreSQL 吗?如果可以,怎么办?

9.1版

4

1 回答 1

3

您需要temp_tablespaces配置指令。请参阅文档

在这些表空间中还会创建用于对大型数据集进行排序等目的的临时文件

CREATE TABLESPACE在交互式SET temp_tablespaces命令中使用它们之前,您必须先获得表空间。

SET LOCAL temp_tablespaces可用于仅为当前事务设置它。

于 2012-10-29T09:47:45.363 回答