2016-08-11 3 views
0

MS-SQL Developerを断片化するのpg_classテーブルを起こし、一時テーブルを作成しない(PG 8.4およびPG 9.4)はPostgresの店で働いて、この最後の

のPostgresで一時テーブルを使用していない理由として挙げた別の開発者SQLはPostgresシステムテーブル(特にpg_class)で断片化を引き起こし、パフォーマンスの低下を招くことです。これは本当ですか?

乾杯

+0

断片化についてはわかりませんが、postgresqlでは一時テーブルはほとんど必要ありません。それを使わずにクエリを書く方法はいつもあります。 – e4c5

+0

お返事ありがとうございます。 CTEのような一時テーブルは単なるツール/テクニックです。カーペンターは、必要に応じて円の鋸、ジグソー、または振動する鋸をピックアップします。プログラマーはそれほど違いはありません:)。 – TPV

+0

右は円形円を使って円を切るような一時的なテーブルを使うと思います!名前にもかかわらず丸い鋸は直線を切断するために使用されます。 – e4c5

答えて

1

フラグメンテーションそれらは常に固定サイズ(PostgreSQLの8 KB)のブロックから構成されるように、データベーステーブルに適用される、むしろ無意味な用語です。

実際のところ、テンポラリテーブルを使用すると、テンポラリテーブルがなくなると削除されるpg_classのようなシステムカタログテーブルとインデックスのエントリが作成されます。 多くの場合、を実行すると、他のどのテーブルでも同じことが起こる可能性があります。自動バキュームを維持できず、システムカタログテーブルとそのインデックスが膨大になる可能性があります。

現在、この種の問題を回避する新しい種類の一時テーブルを作成するには、a proposal on pgsql-hackersがあります。

しかし、本当にたくさんの一時テーブルを使用しない限り、心配する必要はありません。あなたが必要なときにそれらを使用してください!

関連する問題