---

title: PostgreSQL pg_stat_statements 与慢查询治理(标准化、成本与验证)

date: 2025-11-26

keywords:

  • pg_stat_statements
  • 慢查询
  • 代价估算
  • 归一化
  • 优化

description: 启用pg_stat_statements收集归一化查询统计,通过成本与执行指标定位慢查询并提出优化策略,提供验证方法。

tags:

  • PostgreSQL
  • pg_stat_statements
  • 代价估算
  • 优化
  • 归一化
  • 慢查询
  • 数据与存储
  • 数据库

categories:

  • 文章资讯
  • 技术教程

---

概述

pg_stat_statements收集SQL的归一化统计信息,包括调用次数、总耗时、平均耗时与共享命中率。结合EXPLAIN ANALYZE与索引/统计优化,可系统治理慢查询。

关键实践与参数

  • 安装与启用:shared_preload_libraries='pg_stat_statements'
  • 视图查询:pg_stat_statements 提取TOP耗时与调用
  • 优化手段:索引、扩展统计、部分索引与参数调优
  • 验证闭环:前后对比mean_timeblk_read_time

示例/配置/实现

ALTER SYSTEM SET shared_preload_libraries = 'pg_stat_statements';
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
SELECT query, calls, total_time, mean_time, rows FROM pg_stat_statements ORDER BY total_time DESC LIMIT 10;
EXPLAIN (ANALYZE, BUFFERS) SELECT * FROM orders WHERE customer_id = 123 AND status = 'PAID' ORDER BY created_at DESC LIMIT 50;

验证

  • 采样稳定:统计归一化后同类查询聚合合理
  • 优化效果:索引与统计调整后mean_time与I/O显著下降
  • 计划稳定:不同数据分布下计划一致性提升
  • 长期治理:定期复盘TOP查询与改善记录

注意事项

  • 需重启启用shared_preload_libraries
  • 注意统计抹平参数差异,结合具体EXPLAIN
  • 与自动化告警和报表结合跟踪治理
  • 避免对短生命周期环境的过度优化

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部