Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

历史视图——pg_stat_database

  • pg_stat_database 视图
    SELECT *
    FROM pg_stat_database;
    
    • 查看所有数据库的历史情况
    • 整体信息
      • datid 数据库的oid
      • datname 数据库的名字
      • numbackends 该数据库的当前访问连接数
    • 事务相关
      • xact_commit 该数据库的事务提交总量
      • xact_rollback 该数据库的事务回滚总量
        • 如果值很高,说明业务逻辑有问题
    • 读盘相关
      • blks_read 总磁盘物理读的块数
        • 包括从cache读
        • 所以需要结合blk_read_time
          • 进一步判断磁盘读的具体情况
      • blks_hit 从 shared buffer 命中的块数
    • 行数相关
      • tup_returned 全表扫描过 的总行数
        • 如果值很高(相对于tup_fetched),说明存在大量全表
      • tup_fetched 从索引返回 的总行数
      • tup_inserted 插入 的总行数
      • tup_updated 更新 的总行数
        • 如果值很高,则需要关注vaccum相关指标
      • tup_deleted 删除 的总行数
    • 文件和死锁
      • temp_files 临时文件的数量
        • 如果值很高,说明存在较多磁盘排序和hash
          • 需要调大work_mem
      • temp_bytes 临时文件的大小
      • deadlocks 死锁的数量
        • 如果值很高,说明业务逻辑有问题
    • 读写相关
      • blk_read_time 花费在读取文件的时间
        • 如果值很高,说明内存较小,需要频繁从磁盘读入
      • blk_write_time 花费在写入文件的时间
        • 如果值很高,说明 page cache 较小,需要频繁写入磁盘
    • 时间信息
      • stats_reset 此统计信息重置的时间