無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

58.3. 空き領域マップ

ヒープとハッシュインデックス以外のインデックスリレーションはそれぞれ、そのリレーション内で利用可能な領域を継続して追跡するために、空き領域マップ(FSM)を持ちます。 これは、個々のリレーションのフォーク内の主リレーションデータに沿って、リレーションのファイルノード番号に _fsm という接尾辞を付けた名前のファイルに格納されます。 例えばリレーションのファイルノードが12345であれば、FSMは主リレーションファイルと同じディレクトリ内の 12345_fsm という名前のファイルに格納されます。

空き領域マップは FSM ページのツリーとして編成されます。 最下位レベルの FSM ページはすべてのヒープ(またはインデックス)ページで利用可能な空き領域を、各ページ毎に1バイト使用して格納します。 上位レベルは下位レベルからの情報を集約します。

FSM ページの内部はノード当たり1バイトを持つ配列内に格納されたバイナリツリーです。 各リーフノードはヒープページ、または下位レベルの FSM ページを表現します。 各非リーフノード内には、子の値より大きな値が格納されます。 したがってリーフノード内の最大値がルートに格納されます。

FSM がどのように構築されるか、そしてどのように更新、検索されるかに関する詳細は src/backend/storage/freespace/README を参照してください。 pg_freespacemap モジュールを使用して、空き領域マップに格納された情報を調べることができます。


powered by SEO.CUG.NET