PostgreSQL 9.1.5文書 | ||||
---|---|---|---|---|
前のページ | 巻戻し | 第 55章データベースの物理的な格納 | 早送り | 次のページ |
各ヒープリレーションは、どのページがすべての実行中のトランザクションから可視であることが分かっているタプルのみを持つことを追跡する、可視性マップ(VM)を持ちます。 これは、リレーションのファイルノード番号に_vmという接尾辞を付与した名前の別のリレーションフォーク内に主リレーションデータと並行して格納されます。 例えばリレーションのファイルノードが12345の場合、VMは主リレーションファイルと同じディレクトリ内の12345_vmというファイル内に格納されます。 インデックスはVMを持たないことに注意してください。
可視性マップは単にヒープページ当たり1ビットを保持します。 セットされたビットは、ページ内のすべてのタプルがすべてのトランザクションから可視であることが分かっていることを意味します。 これは、そのページにはバキュームが必要なタプルをまったく含んでいないことを意味します。 将来は、可視性検査の際にページを参照することを防止するために使用されるようになる可能性があります。 このマップは、ビットがセットされている時は常にこの条件が真であることを確実に把握できるという点で保守的ですが、ビットがセットされていない場合は、真かもしれませんし偽かもしれません。