#pgstattupleモジュールはタプルレベルの統計情報を入手するための各種関数を提供します。これらの関数は詳細なページレベルの情報を返しますので、デフォルトではアクセスが制限されています。デフォルトではpg_stat_scan_tablesロールだけがEXECUTE権限を持っています。スーパーユーザは、当然、この制限を無視します。拡張がインストールされた後、ユーザはGRANTコマンドを発行して他のユーザがそれらを実行できるよう関数に対する権限を変更できます。その代わりにpg_stat_scan_tablesロールにそのユーザを追加する方が好ましいでしょう。recordpgstattupleはリレーションの物理的な長さ、「無効」なタプルの割合、およびその他の情報を返します。これはバキュームが必要かどうかユーザが判断する時に有用かもしれません。引数は対象とするリレーションの名前(スキーマ修飾可)もしくはOIDです。F.24で説明します。注記table_lenは、tuple_len、dead_tuple_len、free_spaceの合計よりも常に大きいです。違いの原因は、固定ページのオーバーヘッド、ページ毎のタプルへのポインタのテーブル、タプルが正しく整列することを確実にするためのパディングです。リレーション上で読み取りロックのみを獲得します。結果はこの瞬間のスナップショットを考慮しません。同時実行の更新がその結果に影響を与えます。pgstattupleは、HeapTupleSatisfiesDirtyが偽を返すかどうかで、タプルが「無効」かどうか判定します。recordTEXTで対象リレーションを指定する点を除き、これはpgstattuple(regclass)と同じです。この関数は今までのところ後方互換のために残されており、近い将来のリリースでは廃止予定になるでしょう。recordpgstatindexはB-treeインデックスに関する情報を示すレコードを返します。0出力列は以下の通りです。deleted_pagesが占めるより1多いページに相当するでしょう。これは、index_sizeがインデックスメタページも含むためです。pgstattuple同様、結果はページ毎に累積されます。この瞬間のインデックス全体のスナップショットが存在すると想定してはいけません。recordTEXTで対象インデックスを指定する点を除き、これはpgstatindex(regclass)と同じです。この関数は今までのところ後方互換のために残されており、近い将来のリリースでは廃止予定になるでしょう。recordpgstatginindexは、GINインデックスに関する情報を示すレコードを返します。0出力列は以下の通りです。recordpgstathashindexは、HASHインデックスに関する情報を示すレコードを返します。61.8005949100872出力列は以下の通りです。bigintpg_relpagesはリレーション内のページ数を返します。bigintTEXTで対象リレーションを指定する点を除き、これはpg_relpages(regclass)と同じです。この関数は今までのところ後方互換のために残されており、近い将来のリリースでは廃止予定になるでしょう。recordpgstattuple_approxはpgstattupleの代わりとなる高速なバージョンで、近似の結果を返します。引数は対象のリレーションの名前またはOIDです。F.25で説明します。pgstattupleが常に全件走査を実行し、有効タプルと無効タプルの正確な数(およびそのサイズ)と空き領域を返すのに対し、pgstattuple_approxは全件走査を避けようとし、無効タプルの正確な統計情報および有効タプルと空き領域の数とサイズの近似値を返します。可視性マップに従えば可視のタプルしかないページ(ページに対応するVMビットがセットされているなら、無効タプルが含まれていないとみなします)についてスキップすることで、これを実現します。そのようなページについて空き領域の値を空き領域マップから導き、ページ上の残りのスペースは有効タプルによって占められているとみなします。スキップできないページについては、各タプルをスキャンし、その存在とサイズを適切なカウンタに記録し、ページ上の空き領域を加算します。最後に有効タプルの合計数をスキャンしたページとタプルの数に基づいて推定します(VACUUMがpg_class.reltuplesを推定するのと同じ方法です)。上記の出力で、空き領域の数字はpgstattupleの出力と正確には一致しないかもしれません。これは空き領域マップは正確な数字を提供しますが、バイト単位で正確であることまでは保証されていないためです。リレーションデータに対して低レベルの手術を行う。