タイプ: string
コンテキスト: user
再起動: false

この変数は、CREATEコマンドで明示的にテーブル空間が指定されない場合に、生成する一時オブジェクト(一時テーブルと一時テーブル上のインデックス)を格納するテーブル空間(複数可)を指定します。大規模データ集合のソートなどを目的とした一時ファイルもまた、このテーブル空間(複数可)に作成されます。

この値はテーブル空間名のリストです。リストに複数の名前が存在する場合、一時オブジェクトが作成される度にPostgreSQLは無作為にリストから要素を選択します。トランザクションの内側は例外で、連続して作成される一時オブジェクトはそのリストで連続するテーブル空間に格納されます。リスト内の選択された要素が空文字列だった場合、PostgreSQLは自動的に現在のデータベースのデフォルトのテーブル空間を代わりに使用します。

temp_tablespacesを対話式に設定する場合、存在しないテーブル空間を指定するとエラーになります。ユーザがCREATE権限を持たないテーブル空間を指定した場合も同様です。しかし事前に設定された値を使用する場合、存在しないテーブル空間は無視されます。ユーザがCREATE権限を持たないテーブル空間も同様です。具体的には、この規則はpostgresql.conf内で設定した値を使用する場合に適用されます。

デフォルト値は空文字列です。この結果、すべての一時オブジェクトは現在のデータベースのデフォルトのテーブル空間内に作成されます。

default_tablespaceも参照してください

推奨事項 [EN]

For applications which create lots of temporary objects, this setting can be used to put the temp space on a faster/separate device, or even a ramdisk. Because it accepts a list, it can even be used to load balance temp object creation among several tablespaces.

件のコメント