pg_dbms_stats は下記の関数を含みます。
各関数の意味は以下の通りです。
機能 | 関数 | 引数 | オブジェクト単位 | 戻り値 |
---|---|---|---|---|
バックアップ | dbms_stats.backup_database_stats | comment | データベース | int8 |
dbms_stats.backup_schema_stats | schemaname、comment | スキーマ | ||
dbms_stats.backup_table_stats | relname、comment | テーブル | ||
schemaname、tablename、comment | ||||
dbms_stats.backup_column_stats | relname、attname、comment | 列 | ||
schemaname、tablename、attname、comment | ||||
リストア | dbms_stats.restore_database_stats | timestamp | データベース | regclass |
dbms_stats.restore_schema_stats | schemaname、timestamp | スキーマ | ||
dbms_stats.restore_table_stats | relname、timestamp | テーブル | ||
schemaname、tablename、timestamp | ||||
dbms_stats.restore_column_stats | relname、attname、timestamp | 列 | ||
schemaname、tablename、attname、timestamp | ||||
dbms_stats.restore_stats | backup_id | バックアップ | ||
ロック | dbms_stats.lock_database_stats | (なし) | データベース | regclass |
dbms_stats.lock_schema_stats | schemaname | スキーマ | ||
dbms_stats.lock_table_stats | relname | テーブル | ||
schemaname、tablename | ||||
dbms_stats.lock_column_stats | relname、attname | 列 | ||
schemaname、tablename、attname | ||||
ロック解除 | dbms_stats.unlock_database_stats | (なし) | データベース | regclass |
dbms_stats.unlock_schema_stats | schemaname | スキーマ | ||
dbms_stats.unlock_table_stats | relname | テーブル | ||
schemaname、tablename | ||||
dbms_stats.unlock_column_stats | relname、attname | 列 | ||
schemaname、tablename、attname | ||||
インポート | dbms_stats.import_database_stats | src | データベース | void |
dbms_stats.import_schema_stats | schemaname、src | スキーマ | ||
dbms_stats.import_table_stats | relname、src | テーブル | ||
schemaname、tablename、src | ||||
dbms_stats.import_column_stats | relname、attname、src | 列 | ||
schemaname、tablename、attname、src | ||||
パージ | dbms_stats.purge_stats | backup_id、force | バックアップ | dbms_stats.backup_history |
クリーンアップ | dbms_stats.clean_up_stats | (なし) | データベース | text |
各関数で用いられている引数の意味は以下の通りです。
引数 | データ型 | 意味 |
---|---|---|
schemaname | text | 処理対象のスキーマ名です。 |
relname | regclass | 処理対象のテーブル名です。ただし、(スキーマ名).(テーブル名) という形になります。 |
tablename | text | 処理対象のテーブル名です。 |
attname | text | 処理対象の列名です。 |
comment | text | バックアップを識別するためのコメントです。 |
as_of_timestamp | timestamptz | リストアしたいタイミングの基準になるタイムスタンプです。このタイムスタンプ以前で最新のバックアップデータをリストアします。該当するバックアップが存在しない場合、統計情報は現在プランナが見ている値から変更されません。 |
src | text | インポート対象のファイルの絶対パスです。 |
backup_id | bigint | リストアやパージの対象となるバックアップIDです。 リストアの場合、一致するバックアップIDのバックアップデータをリストアします。 パージの場合、一致するバックアップID以前のバックアップを削除します。 |
force | bool | パージするとき、バックアップを強制的に削除するかを決める変数です。 trueの場合、対象範囲のバックアップを全て削除します。 falseの場合、対象範囲外にデータベース単位のバックアップデータが存在しなければ、警告メッセージを出力して処理を中断します。 デフォルトはfalseです。 |
また、統計情報のエクスポート機能は、SQLファイルで実装しています。
各SQLファイルの意味は以下の通りです。なお、出力ファイル名のデフォルトはexport_stats.dmpです。
ファイル名 | 対象統計情報 | 備考 |
---|---|---|
export_effective_stats.<PGバージョン>.sql.sample | プランナが見ている統計情報 | - |
export_plain_stats-<PGバージョン>.sql.sample | 真の統計情報のみ | pg_dbms_stats未インストールでも使用可能です。 |
pg_dbms_statsは以下のテーブルを含みます。
各テーブルの意味は以下の通りです。
テーブル名 | 列名 | データ型 | 意味 |
---|---|---|---|
dbms_stats.backup_history | id | int8 | バックアップ時に付与されたバックアップIDです。 |
time | timestamptz | バックアップ時のタイムスタンプです。 | |
unit | char(1) | バックアップ時のオブジェクト単位です。 d:データベース、s:スキーマ、t:テーブル、c:列 | |
comment | text | バックアップ時に指定したコメントです。 |
pg_dbms_stats は下記のビューを含みます。
各ビューの意味は以下の通りです。
ビュー名 | 意味 |
---|---|
dbms_stats.relation_stats_effective | プランナに見せるテーブルごとの統計情報を表示します。PostgreSQLのpg_classカタログに対応します。 |
dbms_stats.column_stats_effective | プランナに見せる列ごとの統計情報を表示します。PostgreSQLのpg_statisticカタログに対応します。 |
dbms_stats.status | プランナに見せる列ごとの統計情報のうち、ユーザが読み取り可能なものを表示します。PostgreSQLのpg_statsビューに対応します。 |