PostgreSQL 9.1.5文書 | ||||
---|---|---|---|---|
前のページ | 巻戻し | 付録 F. 追加で提供されるモジュール | 早送り | 次のページ |
pgstattupleモジュールはタプルレベルの統計情報を入手するための各種関数を提供します。
pgstattuple(text) returns record
pgstattuple
はリレーションの物理的な長さ、"不要"なタプルの割合、およびその他の情報を返します。
これはバキュームが必要かどうかユーザが判断する時に有用かもしれません。
引数は対象とするリレーションの名前(スキーマ修飾可)です。
以下に例を示します。
test=> SELECT * FROM pgstattuple('pg_catalog.pg_proc'); -[ RECORD 1 ]------+------- table_len | 458752 tuple_count | 1470 tuple_len | 438896 tuple_percent | 95.67 dead_tuple_count | 11 dead_tuple_len | 3157 dead_tuple_percent | 0.69 free_space | 8932 free_percent | 1.95
出力列を表F-21で説明します。
表 F-21. pgstattuple
の出力列
列 | 型 | 説明 |
---|---|---|
table_len | bigint | リレーションのバイト単位の物理長 |
tuple_count | bigint | 有効なタプル数 |
tuple_len | bigint | 有効なタプルの物理長(バイト単位) |
tuple_percent | float8 | 有効タプルの割合 |
dead_tuple_count | bigint | 無効なタプル数 |
dead_tuple_len | bigint | バイト単位の総不要タプル長 |
dead_tuple_percent | float8 | 不要タプルの割合 |
free_space | bigint | バイト単位の総空き領域 |
free_percent | float8 | 空き領域の割合 |
pgstattuple
はリレーション上で読み取りロックのみを獲得します。
ですので、結果はこの瞬間のスナップショットを考慮しません。つまり、同時実行の更新がその結果に影響を与えます。
pgstattuple
は、HeapTupleSatisfiesNow
が偽を返すかどうかで、タプルが"不要"かどうか判定します。
pgstattuple(oid) returns record
OIDで対象リレーションを指定する点を除き、これはpgstattuple(text)
と同じです。
pgstatindex(text) returns record
pgstatindex
はB-treeインデックスに関する情報を示すレコードを返します。
以下は例です。
test=> SELECT * FROM pgstatindex('pg_cast_oid_index'); -[ RECORD 1 ]------+------ version | 2 tree_level | 0 index_size | 8192 root_block_no | 1 internal_pages | 0 leaf_pages | 1 empty_pages | 0 deleted_pages | 0 avg_leaf_density | 50.27 leaf_fragmentation | 0
出力列は以下の通りです。
列 | 型 | 説明 |
---|---|---|
version | integer | B-treeバージョン番号 |
tree_level | integer | ルートページのツリーレベル |
index_size | bigint | インデックス内の総ページ数 |
root_block_no | bigint | ルートブロックの場所 |
internal_pages | bigint | "内部"(上位レベル)ページ数 |
leaf_pages | bigint | リーフページ数 |
empty_pages | bigint | 空ページ数 |
deleted_pages | bigint | 削除ページ数 |
avg_leaf_density | float8 | リーフページの平均密度 |
leaf_fragmentation | float8 | リーフページの断片化 |
pgstattuple
では、結果はページ毎に累積されます。
この瞬間のインデックス全体のスナップショットが存在すると想定してはいけません。
pg_relpages(text) returns bigint
pg_relpages
はリレーション内のページ数を返します。
Tatsuo Ishii and Satoshi Nagayasu