他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

F.24. pgstattuple

pgstattupleモジュールはタプルレベルの統計情報を入手するための各種関数を提供します。

F.24.1. 関数

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-27. pgstattupleの出力列

説明
table_lenbigintリレーションのバイト単位の物理長
tuple_countbigint有効なタプル数
tuple_lenbigint有効なタプルの物理長(バイト単位)
tuple_percentfloat8有効タプルの割合
dead_tuple_countbigint無効なタプル数
dead_tuple_lenbigintバイト単位の総不要タプル長
dead_tuple_percentfloat8不要タプルの割合
free_spacebigintバイト単位の総空き領域
free_percentfloat8空き領域の割合

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
    

出力列は以下の通りです。

表 F-28. pgstatindexの出力列

説明
versionintegerB-Treeバージョン番号
tree_levelintegerルートページのツリーレベル
index_sizeintegerインデックス内の総ページ数
root_block_nointegerルートブロックの場所
internal_pagesinteger"内部"(上位レベル)ページ数
leaf_pagesintegerリーフページ数
empty_pagesinteger空ページ数
deleted_pagesinteger削除ページ数
avg_leaf_densityfloat8リーフページの平均密度
leaf_fragmentationfloat8リーフページの断片化

pgstattupleでは、結果はページ毎に累積されます。 インデックス全体のインスタンスのスナップショットが存在すると想定してはいけません。

pg_relpages(text) returns integer

pg_relpagesはリレーション内のページ数を返します。

F.24.2. 作者

Tatsuo Ishii