スナップショットテーブル¶
この章ではパフォーマンス統計情報のスナップショットを保存するテーブルについて解説します。
スナップショットテーブル一覧¶
パフォーマンス統計情報のスナップショットは、PostgreSQL内部の各種統計情報と対応する以下のテーブルに保存されます。
| テーブル名 | 概要 | 備考 |
|---|---|---|
| pgperf.snapshot | 取得したスナップショットのIDと取得時間を保存します | |
| pgperf.snapshot_pg_stat_database | pg_stat_databaseシステムビューのスナップショットを保存します | |
| pgperf.snapshot_pg_database_size | データベースのサイズを保存します | |
| pgperf.snapshot_pg_stat_user_tables | pg_stat_user_tablesシステムビューのスナップショットを保存します | |
| pgperf.snapshot_pg_statio_user_tables | pg_statio_user_tablesシステムビューのスナップショットを保存します | |
| pgperf.snapshot_pg_stat_user_indexes | pg_stat_user_indexesシステムビューのスナップショットを保存します | |
| pgperf.snapshot_pg_statio_user_indexes | pg_statio_user_indexesシステムビューのスナップショットを保存します | |
| pgperf.snapshot_pg_statio_user_sequences | pg_statio_user_sequencesシステムビューのスナップショットを保存します | |
| pgperf.snapshot_pg_stat_user_functions | pg_stat_user_functionsシステムビューのスナップショットを保存します | |
| pgperf.snapshot_pg_relation_size | テーブルおよびインデックスのサイズを保存します | |
| pgperf.snapshot_pg_current_xlog | トランザクションログの挿入位置/書き込み位置を保存します | |
| pgperf.snapshot_pg_stat_bgwriter | pg_stat_bgwriterシステムビューのスナップショットを保存します | |
| pgperf.snapshot_pg_stat_activity | pg_stat_activityシステムビューのスナップショットを保存します | |
| pgperf.snapshot_pg_locks | pg_locksシステムビューのスナップショットを保存します | |
| pgperf.snapshot_pg_statistic | pg_statisticsシステムテーブルのスナップショットを保存します | |
| pgperf.snapshot_pg_stat_statements | pg_stat_statementsビューのスナップショットを保存します | 8.4以降のみ |
| pgperf.snapshot_pgstattuple | pgstattuple関数の実行結果のスナップショットを保存します | |
| pgperf.snapshot_pgstatindex | pgstatindex関数の実行結果をスナップショットを保存します |
pgperf.snapshotテーブル¶
スナップショット関数で取得したスナップショットのスナップショットIDおよび取得時間を保持するテーブルです。
| カラム名 | データ型 | 取得元 | 備考 |
|---|---|---|---|
| sid | integer | スナップショットID | 単調増加 |
| ts | timestamp | スナップショット取得時刻 | |
| level | integer | スナップショットレベル |
pgperf.snapshot_pg_stat_databaseテーブル¶
アクセス統計情報を取得する pg_stat_database システムビューのスナップショットを保存するテーブルです。
| カラム名 | データ型 | 取得元 | 備考 |
|---|---|---|---|
| sid | integer | スナップショットID | |
| datid | oid | pg_stat_database.datid | |
| datname | name | pg_stat_database.datname | |
| numbackends | integer | pg_stat_database.numbackends | |
| xact_commit | bigint | pg_stat_database.xact_commit | |
| xact_rollback | bigint | pg_stat_database.xact_rollback | |
| blks_read | bigint | pg_stat_database.blks_read | |
| blks_hit | bigint | pg_stat_database.blks_hit | |
| tup_returned | bigint | pg_stat_database.tup_returned | |
| tup_fetched | bigint | pg_stat_database.tup_fetched | |
| tup_inserted | bigint | pg_stat_database.tup_inserted | |
| tup_updated | bigint | pg_stat_database.tup_updated | |
| tup_deleted | bigint | pg_stat_database.tup_deleted | |
| conflicts | bigint | pg_stat_database.conflicts | 9.1以降のみ |
| stats_reset | timestampz | pg_stat_database.stats_reset | 9.1以降のみ |
pgperf.snapshot_pg_database_sizeテーブル¶
データベースのサイズを取得する pg_database_size() 関数のスナップショットを保存するテーブルです。
| カラム名 | データ型 | 取得元 | 備考 |
|---|---|---|---|
| sid | integer | スナップショットID | |
| datname | name | pg_database.datname | |
| pg_database_size | bigint | pg_database_size() |
pgperf.snapshot_pg_stat_user_tablesテーブル¶
アクセス統計情報を取得する pg_stat_user_tables システムビューのスナップショットを保存するテーブルです。
| カラム名 | データ型 | 取得元 | 備考 |
|---|---|---|---|
| sid | integer | スナップショットID | |
| relid | oid | pg_stat_user_tables.relid | |
| schemaname | name | pg_stat_user_tables.schemaname | |
| relname | name | pg_stat_user_tables.relname | |
| seq_scan | bigint | pg_stat_user_tables.seq_scan | |
| seq_tup_read | bigint | pg_stat_user_tables.seq_tup_read | |
| idx_scan | bigint | pg_stat_user_tables.idx_scan | |
| idx_tup_fetch | bigint | pg_stat_user_tables.idx_tup_fetch | |
| n_tup_ins | bigint | pg_stat_user_tables.n_tup_ins | |
| n_tup_upd | bigint | pg_stat_user_tables.n_tup_upd | |
| n_tup_del | bigint | pg_stat_user_tables.n_tup_del | |
| n_tup_hot_upd | bigint | pg_stat_user_tables.n_tup_hot_upd | |
| n_live_tup | bigint | pg_stat_user_tables.n_live_tup | |
| n_dead_tup | bigint | pg_stat_user_tables.n_dead_tup | |
| last_vacuum | timestampz | pg_stat_user_tables.last_vacuum | |
| last_autovacuum | timestampz | pg_stat_user_tables.last_autovacuum | |
| last_analyze | timestampz | pg_stat_user_tables.last_analyze | |
| last_autoanalyze | timestampz | pg_stat_user_tables.last_autoanalyze | |
| vacuum_count | bigint | pg_stat_user_tables.vacuum_count | 9.1以降のみ |
| autovacuum_count | bigint | pg_stat_user_tables.autovacuum_count | 9.1以降のみ |
| analyze_count | bigint | pg_stat_user_tables.analyze_count | 9.1以降のみ |
| autoanalyze_count | bigint | pg_stat_user_tables.autoanalyze_count | 9.1以降のみ |
pgperf.snapshot_pg_statio_user_tablesテーブル¶
アクセス統計情報を取得する pg_statio_user_tables システムビューのスナップショットを保存するテーブルです。
| カラム名 | データ型 | 取得元 | 備考 |
|---|---|---|---|
| sid | integer | スナップショットID | |
| relid | oid | pg_statio_user_tables.relid | |
| schemaname | name | pg_statio_user_tables.schemaname | |
| relname | name | pg_statio_user_tables.relname | |
| heap_blks_read | bigint | pg_statio_user_tables.heap_blks_read | |
| heap_blks_hit | bigint | pg_statio_user_tables.heap_blks_hit | |
| idx_blks_read | bigint | pg_statio_user_tables.idx_blks_read | |
| idx_blks_hit | bigint | pg_statio_user_tables.idx_blks_hit | |
| toast_blks_read | bigint | pg_statio_user_tables.toast_blks_read | |
| toast_blks_hit | bigint | pg_statio_user_tables.toast_blks_hit | |
| tidx_blks_read | bigint | pg_statio_user_tables.tidx_blks_read | |
| tidx_blks_hit | bigint | pg_statio_user_tables.tidx_blks_hit |
pgperf.snapshot_pg_stat_user_indexesテーブル¶
アクセス統計情報を取得する pg_stat_user_indexes システムビューのスナップショットを保存するテーブルです。
| カラム名 | データ型 | 取得元 | 備考 |
|---|---|---|---|
| sid | integer | スナップショットID | |
| relid | oid | pg_stat_user_indexes.relid | |
| indexrelid | oid | pg_stat_user_indexes.indexrelid | |
| schemaname | name | pg_stat_user_indexes.schemaname | |
| relname | name | pg_stat_user_indexes.relname | |
| indexrelname | name | pg_stat_user_indexes.indexrelname | |
| idx_scan | bigint | pg_stat_user_indexes.idx_scan | |
| idx_tup_read | bigint | pg_stat_user_indexes.idx_tup_read | |
| idx_tup_fetch | bigint | pg_stat_user_indexes.idx_tup_fetch |
pgperf.snapshot_pg_statio_user_indexesテーブル¶
アクセス統計情報を取得する pg_statio_user_indexes システムビューのスナップショットを保存するテーブルです。
| カラム名 | データ型 | 取得元 | 備考 |
|---|---|---|---|
| sid | integer | スナップショットID | |
| relid | oid | pg_statio_user_indexes.relid | |
| indexrelid | oid | pg_statio_user_indexes.indexrelid | |
| schemaname | name | pg_statio_user_indexes.schemaname | |
| relname | name | pg_statio_user_indexes.relname | |
| indexrelname | name | pg_statio_user_indexes.indexrelname | |
| idx_blks_read | bigint | pg_statio_user_indexes.idx_blks_read | |
| idx_blks_hit | bigint | pg_statio_user_indexes.idx_blks_hit |
pgperf.snapshot_pg_statio_user_sequencesテーブル¶
アクセス統計情報を取得する pg_statio_user_sequences システムビューのスナップショットを保存するテーブルです。
| カラム名 | データ型 | 取得元 | 備考 |
|---|---|---|---|
| sid | integer | スナップショットID | |
| relid | oid | pg_statio_user_sequences.relid | |
| schemaname | name | pg_statio_user_sequences.schemaname | |
| relname | name | pg_statio_user_sequences.relname | |
| blks_read | int8 | pg_statio_user_sequences.blks_read | |
| blks_hit | int8 | pg_statio_user_sequences.blks_hit |
pgperf.snapshot_pg_stat_user_functionsテーブル¶
アクセス統計情報を取得する pg_stat_user_functions システムビューのスナップショットを保存するテーブルです。
| カラム名 | データ型 | 取得元 | 備考 |
|---|---|---|---|
| sid | integer | スナップショットID | |
| funcid | oid | pg_stat_user_functions.funcid | |
| schemaname | name | pg_stat_user_functions.schemaname | |
| funcname | name | pg_stat_user_functions.funcname | |
| calls | int8 | pg_stat_user_functions.calls | |
| total_time | int8 | pg_stat_user_functions.total_time | |
| self_time | int8 | pg_stat_user_functions.self_time |
pgperf.snapshot_pg_relation_sizeテーブル¶
テーブルおよびインデックスのサイズを取得する pg_relation_size(), pg_total_relation_size() 関数のスナップショットを保存するテーブルです。
| カラム名 | データ型 | 取得元 | 備考 |
|---|---|---|---|
| sid | integer | スナップショットID | |
| schemaname | name | pg_stat_user_tables.schemaname, pg_stat_user_indexes.schemaname | |
| relid | oid | pg_stat_user_tables.relid, pg_stat_user_indexes.indexrelid | |
| relname | name | pg_class.relname | |
| pg_relation_size | bigint | pg_relaion_size() | |
| pg_total_relation_size | bigint | pg_total_relaion_size() | 対象がテーブルの場合のみ有効 |
pgperf.snapshot_pg_current_xlogテーブル¶
トランザクションログの位置を取得する pg_current_xlog_location(), pg_current_xlog_insert_location() 関数のスナップショットを保存するテーブルです。
| カラム名 | データ型 | 取得元 | 備考 |
|---|---|---|---|
| sid | integer | スナップショットID | |
| location | text | pg_current_xlog_location() | |
| insert_location | text | pg_current_xlog_insert_location() |
pgperf.snapshot_pg_stat_bgwriterテーブル¶
バックグラウンドライタ統計情報を取得する pg_stat_bgwriter システムビューのスナップショットを保存するテーブルです。
| カラム名 | データ型 | 取得元 | 備考 |
|---|---|---|---|
| sid | integer | スナップショットID | |
| checkpoints_timed | bigint | pg_stat_bgwriter.checkpoints_timed | |
| checkpoints_req | bigint | pg_stat_bgwriter.checkpoints_req | |
| checkpoint_write_time | double precision | pg_stat_bgwriter.checkpoint_write_time | 9.2以降のみ |
| checkpoint_sync_time | double precision | pg_stat_bgwriter.checkpoint_sync_time | 9.2以降のみ |
| buffers_checkpoint | bigint | pg_stat_bgwriter.buffers_checkpoint | |
| buffers_clean | bigint | pg_stat_bgwriter.buffers_clean | |
| maxwritten_clean | bigint | pg_stat_bgwriter.maxwritten_clean | |
| buffers_backend | bigint | pg_stat_bgwriter.buffers_backend | |
| buffers_backend_fsync | bigint | pg_stat_bgwriter.buffers_backend_fsync | 9.1以降のみ |
| buffers_alloc | bigint | pg_stat_bgwriter.buffers_alloc | |
| stats_reset | timestampz | pg_stat_bgwriter.stats_reset | 9.1以降のみ |
pgperf.snapshot_pg_stat_activityテーブル¶
セッション情報を取得する pg_stat_activity システムビューのスナップショットを保存するテーブルです。
| カラム名 | データ型 | 取得元 | 備考 |
|---|---|---|---|
| sid | integer | スナップショットID | |
| datid | oid | pg_stat_activity.datid | |
| datname | name | pg_stat_activity.datname | |
| procpid | int4 | pg_stat_activity.procpid | 9.1以前 |
| pid | int4 | pg_stat_activity.pid | 9.2以降 |
| usesysid | oid | pg_stat_activity.usesysid | |
| usename | name | pg_stat_activity.usename | |
| application_name | text | pg_stat_activity.application_name | 9.0以降 |
| client_addr | inet | pg_stat_activity.client_addr | |
| client_hostname | text | pg_stat_activity.client_hostname | 9.1以降 |
| client_port | int4 | pg_stat_activity.client_port | |
| backend_start | timestamptz | pg_stat_activity.backend_start | |
| xact_start | timestamptz | pg_stat_activity.xact_start | |
| query_start | timestamptz | pg_stat_activity.query_start | |
| state_change | timestamptz | pg_stat_activity.state_change | 9.2以降 |
| waiting | bool | pg_stat_activity.waiting | |
| state | text | pg_stat_activity.state | 9.2以降 |
| current_query | text | pg_stat_activity.current_query | 9.1以前 |
| query | text | pg_stat_activity.query | 9.2以降 |
pgperf.snapshot_pg_locksテーブル¶
ロック情報を取得する pg_locks システムビューのスナップショットを保存するテーブルです。
| カラム名 | データ型 | 取得元 | 備考 |
|---|---|---|---|
| sid | integer | スナップショットID | |
| locktype | text | pg_locks.locktype | |
| database | oid | pg_locks.database | |
| relation | oid | pg_locks.relation | |
| page | int4 | pg_locks.page | |
| tuple | int2 | pg_locks.tuple | |
| virtualxid | text | pg_locks.virtualxid | |
| transactionid | xid | pg_locks.transactionid | |
| classid | oid | pg_locks.classid | |
| objid | oid | pg_locks.objid | |
| objsubid | int2 | pg_locks.objsubid | |
| virtualtransaction | text | pg_locks.virtualtransaction | |
| pid | int4 | pg_locks.pid | |
| mode | text | pg_locks.mode | |
| granted | bool | pg_locks.granted | |
| fastpath | bool | pg_locks.fastpath | 9.2以降 |
pgperf.snapshot_pg_statisticテーブル¶
オプティマイザ統計情報を保持する pg_statistic システムテーブルのスナップショットを保存するテーブルです。
| カラム名 | データ型 | 取得元 | 備考 |
|---|---|---|---|
| sid | integer | スナップショットID | |
| starelid | oid | pg_statistic.starelid | |
| starelname | name | pg_class.relname | |
| staattnum | smallint | pg_statistic.staattnum | |
| staattname | name | pg_attribute.attname | |
| stainherit | boolean | pg_statistic.stainherit | 9.0以降 |
| stanullfrac | real | pg_statistic.stanullfrac | |
| stawidth | integer | pg_statistic.stawidth | |
| stadistinct | real | pg_statistic.stadistinct | |
| stakind1 | smallint | pg_statistic.stakind1 | |
| stakind2 | smallint | pg_statistic.stakind2 | |
| stakind3 | smallint | pg_statistic.stakind3 | |
| stakind4 | smallint | pg_statistic.stakind4 | |
| stakind5 | smallint | pg_statistic.stakind5 | 9.2以降 |
| staop1 | oid | pg_statistic.staop1 | |
| staop2 | oid | pg_statistic.staop2 | |
| staop3 | oid | pg_statistic.staop3 | |
| staop4 | oid | pg_statistic.staop4 | |
| staop5 | oid | pg_statistic.staop5 | 9.2以降 |
| stanumbers1 | real[] | pg_statistic.stanumbers1 | |
| stanumbers2 | real[] | pg_statistic.stanumbers2 | |
| stanumbers3 | real[] | pg_statistic.stanumbers3 | |
| stanumbers4 | real[] | pg_statistic.stanumbers4 | |
| stanumbers5 | real[] | pg_statistic.stanumbers5 | 9.2以降 |
| stavalues1 | text | pg_statistic.stavalues1 | |
| stavalues2 | text | pg_statistic.stavalues2 | |
| stavalues3 | text | pg_statistic.stavalues3 | |
| stavalues4 | text | pg_statistic.stavalues4 | |
| stavalues5 | text | pg_statistic.stavalues5 | 9.2以降 |
pgperf.snapshot_pg_stat_statementsテーブル¶
セッション統計情報を取得する pg_stat_statements システムビューのスナップショットを保存するテーブルです。アドオンモジュール pg_stat_statements をインストール、設定している場合のみ有効です。
| カラム名 | データ型 | 取得元 | 備考 |
|---|---|---|---|
| sid | integer | スナップショットID | |
| userid | oid | pg_stat_statements.userid | |
| dbid | oid | pg_stat_statements.dbid | |
| query | text | pg_stat_statements.query | |
| calls | bigint | pg_stat_statements.calls | |
| total_time | double precision | pg_stat_statements.total_time | |
| rows | bigint | pg_stat_statements.rows | |
| shared_blks_hit | bigint | pg_stat_statements.shared_blks_hit | |
| shared_blks_read | bigint | pg_stat_statements.shared_blks_read | |
| shared_blks_dirtied | bigint | pg_stat_statements.shared_blks_dirtied | 9.2以降 |
| shared_blks_written | bigint | pg_stat_statements.shared_blks_written | |
| local_blks_hit | bigint | pg_stat_statements.local_blks_hit | |
| local_blks_read | bigint | pg_stat_statements.local_blks_read | |
| local_blks_dirtied | bigint | pg_stat_statements.local_blks_dirtied | 9.2以降 |
| local_blks_written | bigint | pg_stat_statements.local_blks_written | |
| temp_blks_read | bigint | pg_stat_statements.temp_blks_read | |
| temp_blks_written | bigint | pg_stat_statements.temp_blks_written | |
| blk_read_time | double precision | pg_stat_statements.blk_read_time | 9.2以降 |
| blk_write_time | double precision | pg_stat_statements.blk_write_time | 9.2以降 |
pgperf.snapshot_pgstattupleテーブル¶
テーブルのフラグメンテーション情報を取得する pgstattuple() 関数のスナップショットを保存するテーブルです。アドオンモジュール pgstattuple をインストール、設定している場合のみ有効です。
| カラム名 | データ型 | 取得元 | 備考 |
|---|---|---|---|
| sid | integer | スナップショットID | |
| schemaname | name | pg_stat_user_tables.schemaname | |
| relname | name | pg_stat_user_tables.relname | |
| table_len | int8 | pgstattuple().table_len | |
| tuple_count | int8 | pgstattuple().tuple_count | |
| tuple_len | int8 | pgstattuple().tuple_len | |
| tuple_percent | float8 | pgstattuple().tuple_percent | |
| dead_tuple_count | int8 | pgstattuple().dead_tuple_count | |
| dead_tuple_len | int8 | pgstattuple().dead_tuple_len | |
| dead_tuple_percent | float8 | pgstattuple().dead_tuple_percent | |
| free_space | int8 | pgstattuple().free_space | |
| free_percent | float8 | pgstattuple().free_percent |
pgperf.snapshot_pgstatindexテーブル¶
インデックスのフラグメンテーション情報を取得する pgstatindex() 関数のスナップショットを保存するテーブルです。アドオンモジュール pgstattuple をインストール、設定している場合のみ有効です。
| カラム名 | データ型 | 取得元 | 備考 |
|---|---|---|---|
| sid | integer | スナップショットID | |
| schemaname | name | pg_stat_user_indexes.schemaname | |
| relname | name | pg_stat_user_indexes.relname | |
| indexrelname | name | pg_stat_user_indexes.indexrelname | |
| version | int4 | pgstatindex().version | |
| tree_level | int4 | pgstatindex().tree_level | |
| index_size | int8 | pgstatindex().index_size | |
| root_block_no | int8 | pgstatindex().root_block_no | |
| internal_pages | int8 | pgstatindex().internal_pages | |
| leaf_pages | int8 | pgstatindex().leaf_pages | |
| empty_pages | int8 | pgstatindex().empty_pages | |
| deleted_pages | int8 | pgstatindex().deleted_pages | |
| avg_leaf_density | float8 | pgstatindex().avg_leaf_density | |
| leaf_fragmentation | float8 | pgstatindex().leaf_fragmentation |