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 に答える