mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-21 08:29:39 +08:00
.. | ||
Makefile | ||
pgstattuple.c | ||
pgstattuple.sql.in | ||
README.pgstattuple | ||
README.pgstattuple.euc_jp |
$Id: README.pgstattuple.euc_jp,v 1.2 2001/12/20 01:56:08 ishii Exp $ pgstattuple README 2001/10/01 石井達夫 1. pgstattupleとは pgstattupleは,UPDATEやDELETEで作られたテーブルのゴミ領域の大きさを, テーブル自体の物理的な大きさに対するパーセンテージで返却します.つ まり,返却値が大きければ,それだけゴミも多いので,vacuumをかける必 要があるという判断の助けになるわけです. これだけでは情報量が少ないので,NOTICEメッセージでいろんな情報をつ いでに出力します. test=# select pgstattuple('tellers'); NOTICE: physical length: 0.08MB live tuples: 20 (0.00MB, 1.17%) dead tuples: 320 (0.01MB, 18.75%) free/reusable space: 0.01MB (18.06%) overhead: 62.02% pgstattuple ------------- 18.75 (1 row) この実行例では,19%ほどがゴミになっていることが伺えます.NOTICEメッ セージの見方も書いておきます. physical length テーブルの物理的なサイズをMB単位で表示 live tuples ゴミではないタプルに関する情報.タプル数,各 タプルが占める領域の合計,テーブル全体に対する 比率を表示します. dead tuples ゴミになったタプルに関する情報. free/reusable space 利用可能な未使用領域や再利用可能領域 overhead 管理のための領域がテーブル全体に占める比率 2. pgstattupleのインストール PostgreSQLが/usr/local/pgsqlにインストール済であり,testデータベー スにpgstattupleをインストールする場合の手順を示します. $ make $ make install ユーザ定義関数を登録します. $ psql -e -f /usr/local/pgsql/share/contrib/pgstattuple.sql test 3. pgstattupleの使い方 pgstattupleの呼び出し形式は以下です. pgstattuple(NAME) RETURNS FLOAT8 第一引数: テーブル名 関数の戻りはUPDATEやDELETEで作られたテーブルのゴミ領域の大きさで, テーブルの物理的な大きさに対する割合(パーセント)で返却します. なお,pgstattupleはテーブルにAccessShareLockしかかけないので, pgstattuple を実行中に該当テーブルに更新や削除が発生すると,正しく ない結果を返す可能性があります. pgstattupleがタプルを「ゴミ」と判断する基準は, HeapTupleSatisfiesNow()が偽を返したときです. 4. pgstattupleのライセンス条件について pgstattuple.cの冒頭に書いてある通りです.また,pgstattuple は完全に無保 証です.pgstattuple を使用したことによって生じるいかなる結果に関して も責任を負いません. 5. 改訂履歴 2001/12/20 Tom Laneによる修正 Fix pgstattuple to acquire a read lock on the target table. This prevents embarassments such as having the table dropped or truncated partway through the scan. Also, fix free space calculation to include pages that currently contain no tuples. 2001/10/01 PostgreSQL 7.2 用contrib moduleに登録 2001/08/30 pgstattuple バージョン 0.1リリース