
LinuxでPostgreSQL 8.1.11を運用しています。24時間運用なので、VACUUM FULLはせずに毎日深夜にVACUUM ANALYZEを実行しています。
insert,update,deleteが頻繁に起こるシステムです。
VACUUM FULLを実行した場合、どの程度領域を回収できるのかを見積もろうとしています。
現在のデータサイズとOS上の使用容量の差分がわかれば、VACUUM FULLで回収できる領域が見積もれると考えているのですが、データサイズの確認方法がわかりません。
次のような計算でしかわからないでしょうか?
(1行のサイズ×行数)×全テーブル
上のような計算の場合でも、textのような場合は、サイズが行ごとに異なりそうな気がします。データサイズを確認する方法はありませんでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
一番簡単なのは VACUUM FULL を実際に実行し、その前後のサイズを比較することですね。
VACUUM FULL を実行せずに確認するなら、どの程度の精度で見積もるかによって異なりますが、内部的なこと (8kB のブロック単位にディスクに格納されるとか、ブロックやタプルのヘッダーサイズなど) を知っていないと難しいです。
ヒントとしては、テーブルの行数は pg_class テーブルの reltuples 列、テーブルに定義された列の値の平均サイズは pg_class テーブルの avg_width 列、null の割合は null_frac 列に統計情報 (正確な値ではない) として格納されています。これらの値をもとに計算すればある程度の精度で有効な行以外によって占められてる割合を求めることができます。
こういった計算をするのが面倒なら、contrib モジュールの pgstattuple を使うのがいいと思います (参考 URL)。pgstattuple を使えば有効でない行や空き領域の割合、サイズを調べることができます。
参考URL:http://www.postgresql.jp/document/8.4/html/pgsta …
No.1
- 回答日時:
はじめまして、通りすがると申します。
VACUUM ANALYZEを実行してどれぐらい空くかは実際やってみないと解らないと思います。
ただ、予測のための計算は上記方法ではできません。
計算の説明をするとA4横の用紙にざっと9枚程度の資料になってしまいます。
計算の参考資料としましては、以下のサイトなんかは参考になると思います。
http://www2b.biglobe.ne.jp/~caco/webdb-pdfs/vol2 …
この計算式を元に、ディスクへのロード率を調整して、実際の容量と比較検証を行い、
最も近い値を導きだしたものが、自分の環境に合った計算式になると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データを削除しても表領域の使...
-
Data Pump で大量データインポ...
-
ORA-00959: 表領域'****'は...
-
Oracleはどの程度まで巨大なテ...
-
oracle SYSTEM01.DBF が大きい
-
truncate文で全テーブルを一気...
-
INDEXの無効化
-
Viewにインデックスは張れ...
-
oracleのimpdpでORA-39166
-
db2にて数値を3桁文字にて出力...
-
カラムの存在チェック
-
datapumpの実行方法について
-
CLOB型へのINSERT
-
DELETE文でFROM句を省略した場合
-
ACCESS テーブルに2行目から取...
-
インデックス作成後アナライズ...
-
異なるスキーマからデータを抽...
-
アナライズとインデックス作成...
-
複数テーブルをひとつのテーブ...
-
select insert 句
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データを削除しても表領域の使...
-
ORA-00959: 表領域'****'は...
-
Data Pump で大量データインポ...
-
TruncateしたテーブルへのInser...
-
表領域の使用率がもうすぐ100%
-
oracle SYSTEM01.DBF が大きい
-
Oracleはどの程度まで巨大なテ...
-
create table時のINITIALとMAXE...
-
データベースの初期サイズ
-
テーブルのSTORAGE句のサイズ設定
-
運用中のALTER TABLE
-
ORACLEでの領域計算
-
データ削除の方法
-
ディスクサイズの見積もりとは?
-
pgaの最大使用サイズについて
-
オーバーヘッドってなんですか?
-
dba_extentsの考え方について
-
INDEX 見積もりについて
-
表領域の違うEXPORT IMPORT
-
PROCのFETCH結果にごみが。。
おすすめ情報