PostgreSQL 开启慢SQL捕获在排查问题时是个很有效的手段。根据慢SQL让我在工作中真正解决了实际问题,很有帮助。

PostgreSQL 日志支持的输出格式有 stderr(默认)、csvlog 、syslog

一般的错误跟踪,只需在配置文件 【postgresql.conf】简单设置几个参数,当然还有错误级别等要设置。

logging_collector = on
log_destination = 'stderr'
log_directory = 'log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' SELECT
name,
setting,
vartype,
boot_val,
reset_val
FROM pg_settings
where name in('logging_collector','log_destination','log_directory','log_filename');

默认的跟踪日志记录在 pgdate/log 中,如 /usr/local/pgsql/data/log 。
其他几个重要参数说明:

log_rotation_age = 1440    #minute,多长时间创建新的文件记录日志。0 表示禁扩展。
log_rotation_size = 10240 #kb,文件多大后创建新的文件记录日志。0 表示禁扩展。
log_truncate_on_rotation = on #可重用同名日志文件

当需要跟踪SQL语句或者慢语句,得需要设置以下参数:

log_statement = all    #需设置跟踪所有语句,否则只能跟踪出错信息
log_min_duration_statement = 5000 #milliseconds,记录执行5秒及以上的语句

log_statement:
设置跟踪的语句类型,有4种类型:none(默认), ddl, mod, all。跟踪所有语句时可设置为 "all"。

log_min_duration_statement:
跟踪慢查询语句,单位为毫秒。如设置 5000,表示日志将记录执行5秒以上的SQL语句。

当 log_statement=all 和 log_min_duration_statement 同时设置时,将跟踪所有语句,忽略log_min_duration_statement 设置。所以需按情况设置其中一个或两个值。

加载配置

select pg_reload_conf();

show log_min_duration_statement;

针对某个用户或者某数据库进行设置

 alter database test set log_min_duration_statement=5000;

捕获正在查询的慢SQL

select * from pg_stat_activity where state<>'idle' and now()-query_start > interval '5 s' order by query_start ; 

最新文章

  1. Jquery遍历选中的input标签
  2. MSSQL Server数据库的四种连接方法和sql连接字符串
  3. FZU 2191 完美的数字
  4. Linux(Red Hat)-中安装Vmware Tools
  5. NET中的规范标准注释(二) -- 创建帮助文档入门篇
  6. LeetCode340 Longest Substring with At Most K Distinct Characters
  7. MVC模式(Model View Controller)下实现数据库的连接,对数据的删,查操作
  8. Jquery Slick幻灯片插件
  9. gcc编译器与基本类型3
  10. bzoj 2281 [Sdoi2011]黑白棋(博弈+组合计数)
  11. 制作 OpenStack Linux 镜像 - 每天5分钟玩转 OpenStack(151)
  12. batch gradient descent(批量梯度下降) 和 stochastic gradient descent(随机梯度下降)
  13. php 常用的自定义函数
  14. 高度自适应的div
  15. inline-block,一个奇怪的问题:中间div掉下来
  16. ReactNative学习笔记(七)Navigator的使用
  17. C# 如何提取字符串中的数字
  18. Diagnosing out of memory errors and memory leaks 内存泄露实例 C Java JavaScript 内存泄露
  19. Maven项目的拆分与聚合
  20. Shell记录-Shell脚本基础(五)

热门文章

  1. 最细的eclipse 安装maven踩过的坑
  2. 【简记】修改Docker数据目录位置,包含镜像位置
  3. FileChannel详解
  4. 订单BOM与销售BOM的区别
  5. lnmp1.4安装包
  6. .net core使用ocelot---第二篇 身份验证
  7. xcode模拟器使用常用的命令。
  8. vue中的混入
  9. sweetalert 弹框简单使用
  10. Odoo Controller详解