本章节主要介绍PolarDB O引擎中的不同视图详细信息,可通过查询不同视图获取相关对象信息,进而方便定位性能问题。

数据库

您可以通过查询本文描述的视图来获取数据库相关信息。

  • pg_stat_database
    pg_stat_database视图将显示集群中每一个数据库中的每一行数据库范围的统计信息。相关参数信息如下表所示:
    参数 类型 描述
    datid oid 数据库OID。
    datname name 数据库名称。
    numbackends integer 当前连接到数据库的后端数量。这是在视图中唯一一个返回反映当前状态值的列。所有其他列返回从上次重置以来积累的值。
    xact_commit bigint 数据库中已经被提交的事务的数量。
    xact_rollback bigint 数据库中已经被回滚的事务的数量。
    blks_read bigint 数据库中被读取的磁盘块的数量。
    blks_hit bigint 磁盘块被发现已经在缓冲区中的次数,这样不需要一次读取(这只包括 PolarDB-O 缓冲区中的命中,而不包括在操作系统文件系统缓冲区中的命中)。
    tup_returned bigint 数据库中被查询返回的行数。
    tup_fetched bigint 数据库中被查询取出的行数。
    tup_inserted bigint 数据库中被查询插入的行数。
    tup_updated bigint 数据库中被查询更新的行数。
    tup_deleted bigint 数据库中被查询删除的行数。
    conflicts bigint 由于与恢复冲突而在数据库中被取消的查询的数目。
    temp_files bigint 在数据库中被查询创建的临时文件的数量。所有临时文件都被统计,不管为什么创建这些临时文件(如排序或哈希),并且不管log_temp_files设置。
    temp_bytes bigint 在数据库中被查询写到临时文件中的数据总量。所有临时文件都被统计,不管为什么创建这些临时文件,并且不管log_temp_files设置。
    deadlocks bigint 在数据库中被检测到的死锁数。
    blk_read_time double precision 在数据库中后端花费在读取数据文件块的时间。单位:毫秒。
    blk_write_time double precision 在数据库中后端花费在写数据文件块的时间。单位:毫秒。
    stats_reset timestamp with time zone 统计信息最近一次被重置的时间。
  • pg_stat_database_conflicts
    pg_stat_database_conflicts视图用来显示数据库范围内由于与后备服务器上的恢复过程冲突而被取消的查询的统计信息。 pg_stat_database_conflicts视图将只包含后备服务器上的信息, 因为冲突会不发生在主服务器上。相关参数信息如下表所示:
    参数 类型 描述
    datid oid 数据库OID。
    datname name 数据库名称。
    confl_tablespace bigint 数据库中由于表空间被删掉而取消的查询数量。
    confl_lock bigint 数据库中由于锁超时而取消的查询数量。
    confl_snapshot bigint 数据库中由于旧快照而取消的查询数量。
    confl_bufferpin bigint 数据库中由于被占用的缓冲区而取消的查询数量。
    confl_deadlock bigint 数据库中由于死锁而取消的查询数量。

  • pg_stat_all_tables
    pg_stat_all_tables视图将为当前数据库中的每一个表显示与该表访问相关的统计信息。相关参数说明如下表所示:
    参数 类型 描述
    relid oid 表OID。
    schemaname name 表所在的Schema的名称。
    relname name 表名称。
    seq_scan bigint 在表上发起的顺序扫描的次数。
    seq_tup_read bigint 被顺序扫描取得的活着的行的数量。
    idx_scan bigint 在表上发起的索引扫描的次数。
    idx_tup_fetch bigint 被索引扫描取得的活着的行的数量。
    n_tup_ins bigint 被插入的行数。
    n_tup_upd bigint 被更新的行数(包括 HOT 更新的行)。
    n_tup_del bigint 被删除的行数。
    n_tup_hot_upd bigint 被更新的 HOT 行数(即不要求独立索引更新的行更新)。
    n_live_tup bigint 活着的行的估计数量。
    n_dead_tup bigint 死亡行的估计数量。
    n_mod_since_analyze bigint 从表最近一次被分析后备修改的行的估计数量。
    last_vacuum timestamp with time zone 最近一次表被手动清理的时间(不统计VACUUM FULL)。
    last_autovacuum timestamp with time zone 最近一次表被自动清理守护进程清理的时间。
    last_analyze timestamp with time zone 最近一次表被手动分析的时间。
    last_autoanalyze timestamp with time zone 最近一次表被自动清理守护进程分析的时间。
    vacuum_count bigint 表被手工清理的次数(不统计VACUUM FULL)。
    autovacuum_count bigint 表被自动清理守护进程清理的次数。
    analyze_count bigint 表被手工分析的次数。
    autoanalyze_count bigint 表被自动清理守护进程分析的次数。
  • pg_statio_all_tables
    pg_statio_all_tables视图将为当前数据库中的每个表指定有关 I/O 的统计信息。相关参数说明如下表所示:
    参数 类型 描述
    relid oid 表的 OID。
    schemaname name 表所在的Schema的名称。
    relname name 表的名称。
    heap_blks_read bigint 从表读取的磁盘块数量。
    heap_blks_hit bigint 在表中的缓冲区命中数量。
    idx_blks_read bigint 从表上所有索引中读取的磁盘块数。
    idx_blks_hit bigint 在表上的所有索引中的缓冲区命中数量。
    toast_blks_read bigint 从表的 TOAST 表读取的磁盘块数。
    toast_blks_hit bigint 在表的 TOAST 表中的缓冲区命中数量。
    tidx_blks_read bigint 从表的 TOAST 表索引中读取的磁盘块数。
    tidx_blks_hit bigint 在表的 TOAST 表索引中的缓冲区命中数量。

索引

  • pg_stat_all_indexes

    通过查询pg_stat_all_indexes视图可以显示当前数据库中的每个索引访问的统计信息。

    索引可以被简单扫描、位图扫描以及通过优化器来访问。在一次位图扫描中,多个索引的输出可以通过 AND 或 OR 规则组合,当使用一次位图扫描时不能将取得的个体与特定的索引关联起来。因此,一次位图扫描会增加它使用的索引的pg_stat_all_indexes.idx_tup_read数量,并且为每个表增加pg_stat_all_tables.idx_tup_fetch数量,但是它不影响pg_stat_all_indexes.idx_tup_fetch。如果所提供的常量值不在优化器统计信息记录的范围之内,优化器也会访问索引来检查。
    参数 类型 描述
    relid oid 索引基表OID。
    indexrelid oid 索引OID。
    schemaname name 索引所在的Schema的名称。
    relname name 索引基表的名称。
    indexrelname name 索引名称。
    idx_scan bigint 在索引上发起的索引扫描次数。
    idx_tup_read bigint 在索引上由扫描返回的索引项数量。
    idx_tup_fetch bigint 被使用索引的简单索引扫描取得的活着的表行数量。
  • pg_statio_all_indexes
    显示当前数据库中每个索引的磁盘块读取总数和缓冲区命中总数,以及指定索引上与 I/O 有关的统计信息。相关参数说明如下:
    参数 类型 描述
    relid oid 索引基表的 OID。
    indexrelid oid 索引OID。
    schemaname name 索引所在Schema的名称。
    relname name 索引基表的名称。
    indexrelname name 索引名称。
    idx_blks_read bigint 从索引读取的磁盘块数。
    idx_blks_hit bigint 在索引中的缓冲区命中数量。

序列

pg_statio_all_sequences

显示当前数据库相关序列信息,以及指定序列上与 I/O 有关的统计信息。相关参数说明如下:
参数 类型 描述
relid oid 序列OID。
schemaname name 序列所在的Schema的名称。
relname name 序列名称。
blks_read bigint 从序列中读取的磁盘块数。
blks_hit bigint 在序列中的缓冲区命中数量。

函数

pg_stat_user_functions

显示被跟踪函数有关的统计信息。
参数 类型 描述
funcid oid 函数OID。
schemaname name 函数所在的Schema名称。
funcname name 函数名称。
calls bigint 函数被调用的次数。
total_time double precision 在函数以及它所调用的其他函数中花费的总时间。单位:毫秒。
self_time double precision 在函数本身花费的总时间,不包括被它调用的其他函数。单位:毫秒。