• 検索結果がありません。

FILLFACTOR 100 サイズ: 1.6MB

ドキュメント内 スライド 1 (ページ 38-45)

(4) 領域の見積もり

ユーザデータの見積もり

 テーブルファイル

 テーブルファイルサイズ=8kB×ブロック数

 ブロック数=総レコード数÷1ページ格納レコード数

 1ブロック格納レコード数=ブロック最大使用可能サイズ×平均充填率÷レ コードサイズ

 インデックスファイル

 インデックスファイルサイズ≒8kB×リーフノード数

 リーフノード数=総レコード数÷1ページ格納エントリ数

 1ブロック格納エントリ数=ブロック最大利用可能サイズ×平均充填率÷イ

ンデックスタプルサイズ

テーブルのページレイアウト

 テーブルファイルのページブロックは、ページヘッダ、アイテムポインタ、タプル ヘッダ、およびタプルデータで構成される。

ページヘッダ

アイテムポインタ1 アイテムポインタ2 アイテムポインタ3

タプルデータ1 タプルデータ2 タプルデータ

3

(空きスペース)

8KB

タプルヘッダ

3

タプルヘッダ

2

タプルヘッダ

1

ページヘッダを除くスペースを、アイテムポインタが 前から、レコードデータが後ろから使う。

アイテムポインタは、タプルヘッダの開始位置、およ び長さを保持する。

タプルヘッダは、そのタプルを作成、削除したトラン ザクションのXIDを保持する(タプルの可視性の判断 に使用)。

ページヘッダ(PageHeaderData 28バイト)

アイテムポインタ (ItemIdData 4バイト)

タプルヘッダ (HeapTupleHeaderData 24バイト)

タプルデータ (可変、データ型に依存)

データ型とデータサイズ

第8章 データ型

http://www.postgresql.jp/document/9.0/html/datatype.html

B-Tree(リーフ)のページレイアウト

 B-Treeインデックスのリーフページブロックは、ページヘッダ、アイテムポインタ、

インデックスタプルで構成される。

ページヘッダ

アイテムポインタ1 アイテムポインタ2

インデックスタプル1 インデックスタプル2

(空きスペース)

8KB

ページヘッダを除くスペースを、アイテムポインタが 前から、インデックスタプルが後ろから使う。

インデックスタプルは、テーブルファイル内における 該当レコードの「ブロック番号」と「アイテム番号」、

およびキーの値を保持する。

スペシャルデータは、B-Treeにおける「隣のノードの ブロック番号」や「ツリー中の深さ」を保持する(イン デックススキャンで利用)。

ページヘッダ(PageHeaderData 28バイト)

インデックスタプル(IndexTupleData 8バイト+可 変、キーサイズに依存)

スペシャルデータ(BTPageOpaqueData 16バイト)

スペシャルデータ アイテムポインタ3

インデックスタプル3

WALファイルの見積もり

 トランザクションログ領域(オンラインWAL)

 WALファイルは循環的(cyclic)に使用されるため、最大容量が決まる

 アーカイブログ領域(アーカイブWAL)

 ベースバックアップ(非一貫性バックアップ)の間で生成され、アーカイブされ るトランザクションログ

 机上での見積もりは難しいので、実際にトランザクションを実行して見積もる

 更新トランザクションの量とベースバックアップの頻度から算出。

トランザクションログ領域の見積もり

 最大容量は 16MB×(checkpoint_segments × 3 + 1)

WALセグメントファイル(16MB)

各チェックポイント間の最大WALセグメント数(checkpoint_segments)

WALを保持しているチェックポイント数(3)

ドキュメント内 スライド 1 (ページ 38-45)

関連したドキュメント