[pgsql-jp: 41519] create temp table での pg_temp スキーマについて

prod2011 @ yahoo.co.jp prod2011 @ yahoo.co.jp
2013年 10月 28日 (月) 20:06:06 JST


はじめまして。
初めて投稿させていただきました、prodと申します。
よろしくお願いいたします。

早速なのですが、postgresで、テンポラリーテーブルを使うと、
勝手にpg_temp_?、pg_toast_temp_?がどんどん増えていき、
これは何か対応が必要なのか?という部分がわからず、わかる方が
いらっしゃいましたら、ご教授いただきればとありがたいです。

環境は以下です
サーバOS:Red Hat Enterprise Linux Server release 5.3
Postgresバージョン:PostgreSQL 9.1.2

具体的な質問を記載いたします。
1.pg_tempスキーマは、数の上限があるのでしょうか?
     一定以上に達すると、create temp table ができなくなる等ありますでしょうか?

2.pg_tempスキーマは、自動的に削除されるものなのでしょうか?
    それとも、意図的に何か処理をして、消すものなのでしょうか?
    ※ 勝手に削除されているようには、見えなかったため。
    ※  vacuumdb --full をやっても消えませんでした。
    ※ 手動で、drop schema とすると削除できました。

3.pg_tempスキーマが自動的に削除されない場合、
     スキーマの数はどんなに増えても、問題ないのもなのでしょうか?
     ※ 単純に、スキーマが増えると、カタログ等にゴミデータが多くなり、
         DBが全体的に遅くなるのでは?との不安があるため。

4.pg_tempスキーマをselectで取得する方法がわかりませんでした。
    select * from pg_database
    select * from pg_class
    のいずれでも、わかりませんでした。
    取得SQLがわかりましたら、教えていただければと思います。
    ※ pg_temp スキーマを抽出できれば、一定間隔で、不要スキーマの
       削除処理を作成できると考えているため。

以上
よろしくお願いいたします。



pgsql-jp メーリングリストの案内