本章節(jié)主要介紹PolarDB PostgreSQL版中的不同視圖詳細(xì)信息,可通過查詢不同視圖獲取相關(guān)對(duì)象信息,進(jìn)而方便定位性能問題。
表
- pg_stat_all_tablespg_stat_all_tables視圖將為當(dāng)前數(shù)據(jù)庫中的每一個(gè)表顯示與該表訪問相關(guān)的統(tǒng)計(jì)信息。相關(guān)參數(shù)說明如下表所示:
參數(shù) 類型 描述 relid
oid 表OID。 schemaname
name 表所在的Schema的名稱。 relname
name 表名稱。 seq_scan
bigint 在表上發(fā)起的順序掃描的次數(shù)。 seq_tup_read
bigint 被順序掃描取得的活著的行的數(shù)量。 idx_scan
bigint 在表上發(fā)起的索引掃描的次數(shù)。 idx_tup_fetch
bigint 被索引掃描取得的活著的行的數(shù)量。 n_tup_ins
bigint 被插入的行數(shù)。 n_tup_upd
bigint 被更新的行數(shù)(包括 HOT 更新的行)。 n_tup_del
bigint 被刪除的行數(shù)。 n_tup_hot_upd
bigint 被更新的 HOT 行數(shù)(即不要求獨(dú)立索引更新的行更新)。 n_live_tup
bigint 活著的行的估計(jì)數(shù)量。 n_dead_tup
bigint 死亡行的估計(jì)數(shù)量。 n_mod_since_analyze
bigint 從表最近一次被分析后被修改的行的估計(jì)數(shù)量。 last_vacuum
timestamp with time zone 最近一次表被手動(dòng)清理的時(shí)間(不統(tǒng)計(jì)VACUUM FULL)。 last_autovacuum
timestamp with time zone 最近一次表被自動(dòng)清理守護(hù)進(jìn)程清理的時(shí)間。 last_analyze
timestamp with time zone 最近一次表被手動(dòng)分析的時(shí)間。 last_autoanalyze
timestamp with time zone 最近一次表被自動(dòng)清理守護(hù)進(jìn)程分析的時(shí)間。 vacuum_count
bigint 表被手工清理的次數(shù)(不統(tǒng)計(jì)VACUUM FULL)。 autovacuum_count
bigint 表被自動(dòng)清理守護(hù)進(jìn)程清理的次數(shù)。 analyze_count
bigint 表被手工分析的次數(shù)。 autoanalyze_count
bigint 表被自動(dòng)清理守護(hù)進(jìn)程分析的次數(shù)。 - pg_statio_all_tablespg_statio_all_tables視圖將為當(dāng)前數(shù)據(jù)庫中的每個(gè)表指定有關(guān) I/O 的統(tǒng)計(jì)信息。相關(guān)參數(shù)說明如下表所示:
參數(shù) 類型 描述 relid
oid 表的 OID。 schemaname
name 表所在的Schema的名稱。 relname
name 表的名稱。 heap_blks_read
bigint 從表讀取的磁盤塊數(shù)量。 heap_blks_hit
bigint 在表中的緩沖區(qū)命中數(shù)量。 idx_blks_read
bigint 從表上所有索引中讀取的磁盤塊數(shù)。 idx_blks_hit
bigint 在表上的所有索引中的緩沖區(qū)命中數(shù)量。 toast_blks_read
bigint 從表的 TOAST 表讀取的磁盤塊數(shù)。 toast_blks_hit
bigint 在表的 TOAST 表中的緩沖區(qū)命中數(shù)量。 tidx_blks_read
bigint 從表的 TOAST 表索引中讀取的磁盤塊數(shù)。 tidx_blks_hit
bigint 在表的 TOAST 表索引中的緩沖區(qū)命中數(shù)量。
索引
- pg_stat_all_indexes
通過查詢pg_stat_all_indexes視圖可以顯示當(dāng)前數(shù)據(jù)庫中的每個(gè)索引訪問的統(tǒng)計(jì)信息。
索引可以被簡單掃描、位圖掃描以及通過優(yōu)化器來訪問。在一次位圖掃描中,多個(gè)索引的輸出可以通過 AND 或 OR 規(guī)則組合,當(dāng)使用一次位圖掃描時(shí)不能將取得的個(gè)體與特定的索引關(guān)聯(lián)起來。因此,一次位圖掃描會(huì)增加它使用的索引的pg_stat_all_indexes.idx_tup_read數(shù)量,并且為每個(gè)表增加pg_stat_all_tables.idx_tup_fetch數(shù)量,但是它不影響pg_stat_all_indexes.idx_tup_fetch。如果所提供的常量值不在優(yōu)化器統(tǒng)計(jì)信息記錄的范圍之內(nèi),優(yōu)化器也會(huì)訪問索引來檢查。參數(shù) 類型 描述 relid
oid 索引基表OID。 indexrelid
oid 索引OID。 schemaname
name 索引所在的Schema的名稱。 relname
name 索引基表的名稱。 indexrelname
name 索引名稱。 idx_scan
bigint 在索引上發(fā)起的索引掃描次數(shù)。 idx_tup_read
bigint 在索引上由掃描返回的索引項(xiàng)數(shù)量。 idx_tup_fetch
bigint 被使用索引的簡單索引掃描取得的活著的表行數(shù)量。 - pg_statio_all_indexes顯示當(dāng)前數(shù)據(jù)庫中每個(gè)索引的磁盤塊讀取總數(shù)和緩沖區(qū)命中總數(shù),以及指定索引上與 I/O 有關(guān)的統(tǒng)計(jì)信息。相關(guān)參數(shù)說明如下:
參數(shù) 類型 描述 relid
oid 索引基表的 OID。 indexrelid
oid 索引OID。 schemaname
name 索引所在Schema的名稱。 relname
name 索引基表的名稱。 indexrelname
name 索引名稱。 idx_blks_read
bigint 從索引讀取的磁盤塊數(shù)。 idx_blks_hit
bigint 在索引中的緩沖區(qū)命中數(shù)量。
序列
pg_statio_all_sequences
顯示當(dāng)前數(shù)據(jù)庫相關(guān)序列信息,以及指定序列上與 I/O 有關(guān)的統(tǒng)計(jì)信息。相關(guān)參數(shù)說明如下:
參數(shù) | 類型 | 描述 |
---|---|---|
relid | oid | 序列OID。 |
schemaname | name | 序列所在的Schema的名稱。 |
relname | name | 序列名稱。 |
blks_read | bigint | 從序列中讀取的磁盤塊數(shù)。 |
blks_hit | bigint | 在序列中的緩沖區(qū)命中數(shù)量。 |
函數(shù)
pg_stat_user_functions
顯示被跟蹤函數(shù)有關(guān)的統(tǒng)計(jì)信息。
參數(shù) | 類型 | 描述 |
---|---|---|
funcid | oid | 函數(shù)OID。 |
schemaname | name | 函數(shù)所在的Schema名稱。 |
funcname | name | 函數(shù)名稱。 |
calls | bigint | 函數(shù)被調(diào)用的次數(shù)。 |
total_time | double precision | 在函數(shù)以及它所調(diào)用的其他函數(shù)中花費(fèi)的總時(shí)間。單位:毫秒。 |
self_time | double precision | 在函數(shù)本身花費(fèi)的總時(shí)間,不包括被它調(diào)用的其他函數(shù)。單位:毫秒。 |