#一時テーブルと一時スキーマの関係
データベースを使っているとき、処理速度を上げるための手っ取り早い方法として
一時テーブルを作成することがある。
CREATE TEMPORARY TABLE table_name ...
この時、pg_tempで始まる一時スキーマが作成され
一時テーブルはこのpg_tempスキーマ内に作成される。
そして、ユーザーのコネクションが切断されると
当該ユーザーが作成した一時テーブルはすべて削除される
・・・が、pg_tempスキーマは残り続ける
#pg_tempスキーマを消したい
SQLクライアントによるが、pg_tempスキーマが見えるものがある。
そうすると、このpg_tempスキーマが一時テーブルを作成するたびに
どんどん増殖していき、スキーマが大量に存在するデータベースが
めでたく出来上がってしまう。
※バッチ処理で一時テーブル多用するとえらいことになる
#【結論】pg_tempスキーマは消去不可能
SuperUserでDROP SCHEMA することもできず、
Google先生に聞いても似たような事象に遭遇せず、
頼みの綱のAWSサポートに問い合わせしたところ
以下の回答をいただきました。
- pg_tempスキーマは基本的に消去不可
- 同様の問い合わせ多数あり
- 製品担当部署もこの問題を認識
- 対応可否と対応時期は未定
サポートの人、ありがとうございました!