本文へスキップ

Topオブジェクト

ホーム画面 > プロジェクト選択 > 分析 > Topオブジェクト

個別インスタンスのオブジェクト(テーブル、インデックス)別のBloatingサイズ、Scan数、DML実行数、Dead tupleが多いオブジェクトを提供します。また、使用の多いオブジェクトを把握し、VacuumやAnalyzeを適切な時期に実行できるように情報を提供します。

Top object

  • 画面で照会したい 日付インスタンス照会基準照会件数を設定した上で検索アイコンボタンを選択します。 選択した条件に応じた結果がテーブルに表示されます。

  • 照会リストでtablenameまたはindexnameカラム項目を選択すると columnindex構成が確認できるObject detailウィンドウが表示されます。

    Object detail

    ノート

    Object detail機能は、DBXエージェントの1.6.15バージョン以降に対応します。 データベース権限に関する設定は、次の文書を参考にしてください。

ノート
  • Topオブジェクトについての情報は1日に1回収集します。 関連するエージェント設定の詳細については、次の文書を参照してください。

  • データ照会のためには、DBモニタリングアカウントに次の権限が必要です。

    grant select on all tables in schema {schema_name} to whatap;
  • この機能は、DBXエージェント1.6.13バージョン以降に対応しています。

Bloating

Bloatingは実際に使用されていないtupleが増加してオブジェクトサイズが大きくなる現象です。

エージェント設定(whatap.conf)のtable[index]_bloat_ratio[bytes]に設定された収集基準よりも大きな値を持つテーブルとインデックスをリストに表示します。 該当するオブジェクトがないと、データが照会されない場合があります。

Tips

チューニングTips

Bloat_ratioが高いテーブルはVacuumの実行を検討してください。 詳細については、次の文書を参照してください。

次はBloatingを照会すると表示されるカラム項目です。

区分カラム名説明
Tabledatnameデータベース名
schemanameスキーマ(schema)名
tablenameテーブル名
est_rowsDead tuple + Live tuple件数で予測した値
table_sizeテーブルサイズ
bloat_sizeDead tupleで膨らませた予想テーブルサイズ
bloat_ratio膨らませたサイズの比率です。
Indexdatnameデータベース名
schemanameスキーマ(schema)名
tablenameテーブル名
indexnameインデックス名
table_sizeテーブルサイズ
index_sizeインデックスサイズ
bloat_sizeDead tupleによって膨らませた予想インデックスサイズ
bloat_ratio膨らませたサイズ比率
index_scansインデックスを使用した場合、index scan回収

Scan

Seq_scanはインデックスを使用していないFull Scanを意味し、idx_scanはインデックスを使用した数を意味します。

Tips

チューニングTips

Seq_scanが高いテーブルはインデックス作成を、idx_scanが低いインデックスは削除を検討してください。 詳細については、次の文書を参照してください。

次はScanを照会すると表示されるカラム項目です。

区分カラム名説明
Tabledatnameデータベース名
schemanameスキーマ(schema)名
tablenameテーブル名
seq_scan該当テーブルを順次スキャン(Full scan)した数
seq_tup_read順次スキャンから読取りされたライブ行数
idx_scan該当テーブルのインデックススキャン数
idx_tup_fetchインデックススキャンで読み取ったライブ行数
Indexdatnameデータベース名
schemanameスキーマ(schema)名
tablenameテーブル名
indexnameインデックス名
idx_scanインデックススキャン実行数
idx_tup_fetch該当インデックスを使用してインデックススキャンから抽出された有効テーブル行数
idx_tup_readインデックススキャンに返されたインデックス項目の数

DML

dml_count値が高いテーブルは、使用の多い主要なテーブルです。

Tips

チューニングTips

使用するシステムの主要なテーブルを把握し、テーブルの変更やアーキテクチャ設計の際に参考にしてください。

次はDMLを照会すると表示されるカラム項目です。

カラム名説明
datnameデータベース名
schemanameスキーマ(schema)名
tablenameテーブル名
dml_countn_tup_ins + n_tup_upd + n_tup_del
n_tup_ins挿入(Insert)された行数
n_tup_updアップデート(Update)された行数
n_tup_del削除(Delete)された行数
n_tup_hot_updHOTアップデートされた行数(例:別途のインデックスアップデートが不要)

Analyze Time

AnalyzeとVacuum実行の日付が古いオブジェクトの一覧です。

Tips

チューニングTips

日付の古いテーブルは、統計情報が正しくないことがあります。 実行を検討してください。 詳細については、次の文書を参照してください。

次はAnalyze Timeを照会すると表示されるカラム項目です。

カラム名説明
datnameデータベース名
schemanameスキーマ(schema)名
tablenameテーブル名
last_analyzeテーブルを手動分析した最後の時間
last_autoanalyzeautovacuumデーモンでテーブルを分析した最後の時間
last_autovacuumautovacuumデーモンでテーブルをバキューム(vacuum)した最後の時間
analyze_count手動で分析した回数
last_vacuumテーブルが手動でバキューム(vacuum)した最後の時間(VACUUM FULLは除く)
autoanalyze_countautovacuumデーモンで分析した回数
autovacuum_countautovacuumデーモンでバキューム(vacuum)した回数
vacuum_count手動でバキューム(vacuum)した回数(VACUUM FULLを除く)
n_mod_since_analyze最後の分析(analyze)から変更された行数(推定値)

Age

PostgreSQLではXID(transaction id)を循環的に使用しているため、ある時点でXIDがラップアラウンド(Wraparound)されることがあります。 この現象を防止するために、xid_age(Current XID - 作成時点のXID)が増え続けないように管理する必要があります。 autovacuum_freeze_max_ageを超えたらAnti-Wraparound Vacuumが自動的に行わるため、autovacuum_freeze_max_age以下でxid_ageを管理します。

この一覧は、以下の基準に該当するvacuum対象があるか照会します。 対象がないと、データが照会されない場合があります。

  • dead tupleの数がvacuum threshold(autovacuum_threshold + autovacuum_scale_factor * number-of-tuples) より多いテーブル

  • age(relfrozenxid)がautovacuum_freeze_max_ageより大きなテーブル

Tips

チューニングTips

xid_ageが増加し続けている場合は、現在設定されたAuto Vaccum条件としてXID整理作業が進まない可能性があります。 auto vacuumパラメータを調整するか、手動でVacuumの実行を検討してください。

詳細については、次の文書を参照してください。

次はAgeを照会すると表示されるカラム項目です。

カラム名説明
datnameデータベース名
schemanameスキーマ(schema)名
tablenameテーブル名
xid_ageテーブルのmax age、最も古いレコードのxid(トランザクションID)
per_to_wraparoundxid(トランザクションID) ラッピングまでの残りの余裕をパーセンテージで表示した指標
計算式:per_to_wraparound(%) = xid_age / Autovacuum_freeze_max_age * 100
table_sizeテーブルサイズ
autovacuum_vacuum_tuplesこの値よりDead tupleの数が多くなると、autovacuumを実行します。
dead_tuplesDead tuple数
autovacuum_freeze_max_age既定値は2億に設定

Dead Tuple

Dead tupleはDeleteやUpdateですでに削除された資料です。 free spaceに変えるためにVacuum実行を検討します。

Tips

チューニングTips

Dead tupleを減らすためにはVacuum実行を検討してください。 詳細については、次の文書を参照してください。

次はDead Tupleを照会すると表示されるカラム項目です。

カラム名説明
datnameデータベース名
schemanameスキーマ(schema)名
tablenameテーブル名
dead_tupleDeleteやUpdate等により使用しないタプル(Tuple)の数
dead_tuple_ratio使用しないタプル(Tuple)の割合
live_tuple使用するタプル(Tuple)の数
live_tuple_ratio使用するタプル(Tuple)の割合
total_relation_sizeリレーションの全体サイズ、インデックスとTOASTデータを含む
total_tuple全体タプル(Tuple)の数

エージェント設定

次はTopオブジェクトに関する情報を照会するためのエージェント設定です。 whatap.confファイルに必要なオプションを設定してください。

  • pg_object Boolean

    既定値false

    Topオブジェクト情報の収集有無を設定します。 情報を収集するにはtrueに変更してください。

  • pg_object_hour Int

    既定値5

    Topオブジェクト情報の収集時間を設定します。 既定値は5で、午前5時に収集を始めます。

  • table_bloat_ratio Percentage

    既定値50

    テーブルbloating ratio値が設定値以上の場合は、情報を収集します。 既定値は50%です。

  • table_bloat_bytes Byte

    既定値10485760

    テーブルbloatingbytes値が設定値以上の場合、情報を収集します。 既定値は10MBです。

  • index_bloat_ratio Percentage

    既定値50

    インデックスbloatingratio値が設定値以上の場合、情報を収集します。 既定値は50%です。

  • index_bloat_bytes Byte

    既定値10485760

    インデックスbloating bytes値が設定値以上の場合、情報を収集します。 既定値は10MBです。

  • autovacuum_list_limit Int

    既定値50

    日付の古いage(relfrozenxid)順に設定値程のテーブル情報を収集します。 既定値は50件です。