スナップショットテーブル

この章ではパフォーマンス統計情報のスナップショットを保存するテーブルについて解説します。

スナップショットテーブル一覧

パフォーマンス統計情報のスナップショットは、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