当前位置: 首页 > news >正文

pg常用数据字典

pg_stat_activity — 当前会话信息
作用: 查看数据库当前正在干什么。

核心字段:

字段 说明
pid 进程号
usename 用户名
datname 数据库名
state 状态:active / idle / idle in transaction
query 正在执行的 SQL
wait_event / wait_event_type 是否在等待锁或 IO
backend_start / query_start 启动或开始时间

案例操作:
-- 1. 打开两个 psql 会话,A 和 B
-- A:
BEGIN;
UPDATE test SET name = 'aaa' WHERE id = 1; -- 不提交

-- B:
UPDATE test SET name = 'bbb' WHERE id = 1; -- 会被卡住
此时执行:

SELECT pid, usename, state, wait_event_type, wait_event, query
FROM pg_stat_activity
WHERE state <> 'idle';

解读:
会看到 B 的会话在等待锁(wait_event_type='Lock')。
A 是阻塞者。可以用:
SELECT pg_blocking_pids(<B的pid>);
找出阻塞源。



pg_stat_all_tables — 所有表的访问统计
作用: 查看系统中所有表的访问频率和修改次数。

核心字段:

字段 含义
seq_scan / seq_tup_read 顺序扫描次数与读取行数
idx_scan / idx_tup_fetch 索引扫描次数与返回行数
n_tup_ins / upd / del 插入、更新、删除次数
n_live_tup / n_dead_tup 活行 / 死行数量
vacuum_time 上次清理时间
案例操作:

CREATE TABLE t_stat (id serial, val int);
INSERT INTO t_stat(val)
SELECT generate_series(1,10000);

SELECT * FROM t_stat WHERE val > 9000; -- 执行几次
UPDATE t_stat SET val = val + 1 WHERE val < 1000;
DELETE FROM t_stat WHERE val > 9999;

SELECT relname, seq_scan, idx_scan, n_tup_ins, n_tup_upd, n_tup_del, n_dead_tup
FROM pg_stat_all_tables
WHERE relname='t_stat';
解读:

seq_scan > 0:说明全表扫描;
n_dead_tup 高:说明死行多,应 vacuum。



3️⃣ pg_stat_user_tables — 仅用户表统计
与上一个类似,只过滤掉系统表。

案例:

SELECT relname, seq_scan, idx_scan, n_dead_tup, last_autovacuum
FROM pg_stat_user_tables
ORDER BY n_dead_tup DESC
LIMIT 10;
说明:
适合 DBA 日常监控哪些表最脏(死行多)。



5️⃣ pg_stat_all_indexes — 所有索引使用情况
作用: 了解哪些索引常用,哪些没用。

核心字段:

字段 说明
idx_scan 索引被使用的次数
idx_tup_read 从索引读取的元组数
idx_tup_fetch 通过索引返回的元组数
案例:

CREATE INDEX idx_val ON t_stat(val);
SELECT * FROM t_stat WHERE val = 1;
SELECT * FROM t_stat WHERE val > 5000;

SELECT relname, indexrelname, idx_scan, idx_tup_read
FROM pg_stat_all_indexes
WHERE relname='t_stat';
解读:

idx_scan=0 → 该索引未被使用,可考虑删除;
适用于索引健康检查。



8️⃣ pg_stat_database — 数据库整体性能概览
作用: 按数据库级别聚合事务与缓存命中信息。

核心字段:

字段 含义
numbackends 当前连接数
xact_commit / xact_rollback 提交/回滚次数
blks_read / blks_hit 磁盘读 / 缓存命中次数
tup_returned / tup_fetched 返回行数
案例:

SELECT datname,
numbackends,
xact_commit, xact_rollback,
blks_read, blks_hit,
ROUND(100.0 * blks_hit / (blks_hit + blks_read + 1),2) AS cache_hit_ratio
FROM pg_stat_database;
解读:

命中率低(< 90%)说明内存缓存不够;
回滚多说明事务出错或逻辑问题。


🔟 pg_stat_bgwriter — 后台写入进程统计
作用: 查看检查点与后台写入活动。

核心字段:

字段 说明
checkpoints_timed / req 定期与手动触发次数
buffers_checkpoint 检查点写出的缓冲页数
buffers_clean 后台清理写出的页数
buffers_backend 前端进程自己写出的页数
案例:

SELECT checkpoints_timed, checkpoints_req,
buffers_checkpoint, buffers_clean, buffers_backend
FROM pg_stat_bgwriter;
解读:

checkpoints_req 频繁说明写压力大;
优化方法:调大 checkpoint_timeout。



11️⃣ pg_stat_user_tables
作用:显示用户表的访问统计信息。

常见字段:

字段 含义
relid 表的 OID
relname 表名
seq_scan 顺序扫描次数
seq_tup_read 顺序扫描读取的行数
idx_scan 使用索引扫描的次数
n_tup_ins / upd / del / hot_upd 各类行操作统计
vacuum_count / analyze_count VACUUM 与 ANALYZE 执行次数
案例:

SELECT relname, seq_scan, idx_scan, n_tup_ins, n_tup_upd, n_tup_del
FROM pg_stat_user_tables
ORDER BY seq_scan DESC;
实战解读:
👉 快速判断哪个表“经常全表扫描”,或“频繁更新”。
当 seq_scan 很高、idx_scan 很低时,说明缺乏索引或 SQL 写得不好。


12️⃣ pg_stat_user_indexes
作用:用户表中索引的使用统计。

常见字段:

字段 含义
relname 表名
indexrelname 索引名
idx_scan 索引被使用的次数
idx_tup_read 通过索引读取的行数
idx_tup_fetch 最终取到的行数(命中率)
案例:

SELECT relname, indexrelname, idx_scan, idx_tup_read, idx_tup_fetch
FROM pg_stat_user_indexes
ORDER BY idx_scan DESC;
实战解读:
👉 找出“没被用过的索引”。
当 idx_scan = 0 时,可能是多余索引,影响写入性能。



http://www.jsqmd.com/news/322098/

相关文章:

  • 基于元模型优化的虚拟电厂主从博弈优化调度模型探索
  • AI 写论文哪个软件最好?虎贲等考 AI 凭全流程合规硬核,成毕业生终极答案
  • 从 0 到开通抖音带货橱窗,新手最快只需要 3 步
  • 2026年全国路灯厂家权威推荐榜 智能化节能化适配多场景工程指南全景解析
  • PLC网关有什么推荐?哪个品牌好用?
  • 必收藏!2026 AI应用爆发详解(小白/程序员必看,五大核心板块快速上手)
  • 安徽学技术怎么选?这份安徽职业学校指南,藏着安心答案
  • Java毕设项目推荐-基于java+springboot的模拟证券交易软件平台系统可视化大屏【附源码+文档,调试定制服务】
  • aws 常用命令
  • 2026年家具定制终极选型指南:ENF环保口径与快工期交付闭环融合的广州深圳东莞源头工厂深度测评
  • 第三方软件课题验收测试【使用Docker容器部署LoadRunner负载生成器以实现弹性压测 】
  • 互联网大厂Java求职面试实战:Spring Boot、微服务与AI技术栈综合解析
  • 2026酱香白酒厂家优选推荐:53度酱香白酒,穗百顺酱酒领衔,纯粮工艺适配各类品鉴场景
  • 上天翼云,一键开启你的AI助手“Moltbot”(原名Clawdbot)!
  • 2026年成都竹笋食品行业竹笋/手剥笋/竹笋食品/泡椒笋营销技术服务商TOP5权威评估与选型指南报告
  • 聊聊焊工焊接培训学校哪家性价比高
  • argocd 提示信息:The resources will be synced using ‘kubectl replace/create‘ command that.....
  • 微信鸿蒙版 8.0.14 查询 navigator.maxTouchPoints 为 0 导致的 bug
  • ArgoCD 中资源存在不可变字段修改的含义和举例
  • 2026年河南口碑好的保温材料公司推荐,大杨保温材料详细介绍
  • 2026年 贺卡定制厂家推荐排行榜:激光镂空/3D立体/纸雕贺卡,高级感祝福贺卡品牌精选
  • Java毕设选题推荐:基于SpringBoot+Vue的模拟证券交易软件平台的设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 2026年 明信片厂家推荐排行榜,立体/烫金/企业/个性/节日/明星/旅游/创意/镂空/文创明信片,匠心工艺与创意设计深度解析
  • PCL2启动器下载安装2026最新指南:电脑版免费下载+Mod整合包一键导入(附官方安装包)
  • 【图像处理】Gamma矫正 - 详解
  • 2026年 减压器/减压阀/背压阀/单向阀/针阀/球阀/隔膜阀厂家推荐榜:精密流体控制阀门的实力品牌与创新技术深度解析
  • 基于MATLAB的二维平面阵列方向图仿真与波束形成实现
  • 搜索功能操作流程验证:软件测试从业者的全面指南
  • 2025年CCL13/IL-1R4/Eotaxin/IL-18检测试剂盒采购指南:三大品牌综合评测
  • 移动厕所生产厂哪家合作案例多,江苏地区有哪些靠谱推荐?