本章節(jié)主要介紹PolarDB PostgreSQL版中的不同視圖詳細(xì)信息,可通過查詢不同視圖獲取相關(guān)對(duì)象信息,進(jìn)而方便定位性能問題。

  • pg_stat_all_tables
    pg_stat_all_tables視圖將為當(dāng)前數(shù)據(jù)庫中的每一個(gè)表顯示與該表訪問相關(guān)的統(tǒng)計(jì)信息。相關(guān)參數(shù)說明如下表所示:
    參數(shù)類型描述
    relidoid表OID。
    schemanamename表所在的Schema的名稱。
    relnamename表名稱。
    seq_scanbigint在表上發(fā)起的順序掃描的次數(shù)。
    seq_tup_readbigint被順序掃描取得的活著的行的數(shù)量。
    idx_scanbigint在表上發(fā)起的索引掃描的次數(shù)。
    idx_tup_fetchbigint被索引掃描取得的活著的行的數(shù)量。
    n_tup_insbigint被插入的行數(shù)。
    n_tup_updbigint被更新的行數(shù)(包括 HOT 更新的行)。
    n_tup_delbigint被刪除的行數(shù)。
    n_tup_hot_updbigint被更新的 HOT 行數(shù)(即不要求獨(dú)立索引更新的行更新)。
    n_live_tupbigint活著的行的估計(jì)數(shù)量。
    n_dead_tupbigint死亡行的估計(jì)數(shù)量。
    n_mod_since_analyzebigint從表最近一次被分析后被修改的行的估計(jì)數(shù)量。
    last_vacuumtimestamp with time zone最近一次表被手動(dòng)清理的時(shí)間(不統(tǒng)計(jì)VACUUM FULL)。
    last_autovacuumtimestamp with time zone最近一次表被自動(dòng)清理守護(hù)進(jìn)程清理的時(shí)間。
    last_analyzetimestamp with time zone最近一次表被手動(dòng)分析的時(shí)間。
    last_autoanalyzetimestamp with time zone最近一次表被自動(dòng)清理守護(hù)進(jìn)程分析的時(shí)間。
    vacuum_countbigint表被手工清理的次數(shù)(不統(tǒng)計(jì)VACUUM FULL)。
    autovacuum_countbigint表被自動(dòng)清理守護(hù)進(jìn)程清理的次數(shù)。
    analyze_countbigint表被手工分析的次數(shù)。
    autoanalyze_countbigint表被自動(dòng)清理守護(hù)進(jìn)程分析的次數(shù)。
  • pg_statio_all_tables
    pg_statio_all_tables視圖將為當(dāng)前數(shù)據(jù)庫中的每個(gè)表指定有關(guān) I/O 的統(tǒng)計(jì)信息。相關(guān)參數(shù)說明如下表所示:
    參數(shù)類型描述
    relidoid表的 OID。
    schemanamename表所在的Schema的名稱。
    relnamename表的名稱。
    heap_blks_readbigint從表讀取的磁盤塊數(shù)量。
    heap_blks_hitbigint在表中的緩沖區(qū)命中數(shù)量。
    idx_blks_readbigint從表上所有索引中讀取的磁盤塊數(shù)。
    idx_blks_hitbigint在表上的所有索引中的緩沖區(qū)命中數(shù)量。
    toast_blks_readbigint從表的 TOAST 表讀取的磁盤塊數(shù)。
    toast_blks_hitbigint在表的 TOAST 表中的緩沖區(qū)命中數(shù)量。
    tidx_blks_readbigint從表的 TOAST 表索引中讀取的磁盤塊數(shù)。
    tidx_blks_hitbigint在表的 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ù)類型描述
    relidoid索引基表OID。
    indexrelidoid索引OID。
    schemanamename索引所在的Schema的名稱。
    relnamename索引基表的名稱。
    indexrelnamename索引名稱。
    idx_scanbigint在索引上發(fā)起的索引掃描次數(shù)。
    idx_tup_readbigint在索引上由掃描返回的索引項(xiàng)數(shù)量。
    idx_tup_fetchbigint被使用索引的簡單索引掃描取得的活著的表行數(shù)量。
  • pg_statio_all_indexes
    顯示當(dāng)前數(shù)據(jù)庫中每個(gè)索引的磁盤塊讀取總數(shù)和緩沖區(qū)命中總數(shù),以及指定索引上與 I/O 有關(guān)的統(tǒng)計(jì)信息。相關(guān)參數(shù)說明如下:
    參數(shù)類型描述
    relidoid索引基表的 OID。
    indexrelidoid索引OID。
    schemanamename索引所在Schema的名稱。
    relnamename索引基表的名稱。
    indexrelnamename索引名稱。
    idx_blks_readbigint從索引讀取的磁盤塊數(shù)。
    idx_blks_hitbigint在索引中的緩沖區(qū)命中數(shù)量。

序列

pg_statio_all_sequences

顯示當(dāng)前數(shù)據(jù)庫相關(guān)序列信息,以及指定序列上與 I/O 有關(guān)的統(tǒng)計(jì)信息。相關(guān)參數(shù)說明如下:
參數(shù)類型描述
relidoid序列OID。
schemanamename序列所在的Schema的名稱。
relnamename序列名稱。
blks_readbigint從序列中讀取的磁盤塊數(shù)。
blks_hitbigint在序列中的緩沖區(qū)命中數(shù)量。

函數(shù)

pg_stat_user_functions

顯示被跟蹤函數(shù)有關(guān)的統(tǒng)計(jì)信息。
參數(shù)類型描述
funcidoid函數(shù)OID。
schemanamename函數(shù)所在的Schema名稱。
funcnamename函數(shù)名稱。
callsbigint函數(shù)被調(diào)用的次數(shù)。
total_timedouble precision在函數(shù)以及它所調(diào)用的其他函數(shù)中花費(fèi)的總時(shí)間。單位:毫秒。
self_timedouble precision在函數(shù)本身花費(fèi)的總時(shí)間,不包括被它調(diào)用的其他函數(shù)。單位:毫秒。