os:centos 6.8
db:postgresql 9.6

pg_stat_statements模块提供了一种跟踪执行的所有SQL语句的统计信息的方法。

这个模块必须改写配置文件postgresql.conf中的shared_preload_libraries变量,这是因为他需要额外的共享内存。
同时也意味着需要重启服务。

当pg_stat_statements被载入时,它会跟踪该服务器 的所有数据库的统计信息。
该模块提供了一个视图 pg_stat_statements 以及函数 pg_stat_statements_reset 和pg_stat_statements用于访问和操纵这些统计信息。
这些视图 和函数不是全局可用的,但是可以用CREATE EXTENSION pg_stat_statements 为特定数据库启用它们。

配置参数

pg_stat_statements.max (integer)
pg_stat_statements.max是由该模块跟踪的语句的最大数目(即pg_stat_statements视图中行的最大数量)。如果观测到的可区分的语句超过这个数量,最少被执行的语句的信息将会被丢弃。默认值为 5000。这个参数只能在服务器启动时设置。

pg_stat_statements.track (enum)
pg_stat_statements.track控制哪些语句会被该模块计数。指定top可以跟踪顶层语句(那些直接由客户端发出的语句),指定all还可以跟踪嵌套的语句(例如在函数中调用的语句),指定none可以禁用语句统计信息收集。默认值是top。 只有超级用户能够改变这个设置。

pg_stat_statements.track_utility (boolean)
pg_stat_statements.track_utility控制该模块是否会跟踪工具命令。工具命令是除了SELECT、INSERT、 UPDATE和DELETE之外所有的其他命令。默认值是on。 只有超级用户能够改变这个设置。

pg_stat_statements.save (boolean)
pg_stat_statements.save指定是否在服务器关闭之后还保存语句统计信息。如果被设置为off,那么关闭后不保存统计信息并且在服务器启动时也不会重新载入统计信息。默认值为on。这个参数只能在postgresql.conf文件中或者在服务器命令行上设置。

该模块要求与pg_stat_statements.max成比例的额外共享内存。注意只要该模块被载入就会消耗这么多的内存,即便pg_stat_statements.track被设置为none。

这些参数必须在postgresql.conf中设置。典型的用法可能是:
vi postgresql.conf
shared_preload_libraries = ‘pg_stat_statements’

pg_stat_statements.max = 10000
pg_stat_statements.track = all

检查 pg_stat_statements

/usr/pgsql-9.6/lib/pg_stat_statements.so/usr/pgsql-9.6/share/extension/
-rw-r--r-- 1 root root  1246 Aug 10 10:15 pg_stat_statements--1.0--1.1.sql
-rw-r--r-- 1 root root  1336 Aug 10 10:15 pg_stat_statements--1.1--1.2.sql
-rw-r--r-- 1 root root  1454 Aug 10 10:15 pg_stat_statements--1.2--1.3.sql
-rw-r--r-- 1 root root   345 Aug 10 10:15 pg_stat_statements--1.3--1.4.sql
-rw-r--r-- 1 root root  1427 Aug 10 10:15 pg_stat_statements--1.4.sql
-rw-r--r-- 1 root root   191 Aug 10 10:15 pg_stat_statements.control
-rw-r--r-- 1 root root   449 Aug 10 10:15 pg_stat_statements--unpackaged--1.0.sql

创建 pg_stat_statements extension

create extension pg_stat_statements;

确认 pg_stat_statements

mondb=# \dxList of installed extensionsName        | Version |   Schema   |                         Description
--------------------+---------+------------+--------------------------------------------------------------dblink             | 1.2     | public     | connect to other PostgreSQL databases from within a databasepg_stat_statements | 1.4     | public     | track execution statistics of all SQL statements executedplpgsql            | 1.0     | pg_catalog | PL/pgSQL procedural language
(3 rows)

查询 pg_stat_statements

SELECT query, calls, total_time, rows, 100.0 * shared_blks_hit /nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent FROM pg_stat_statements ORDER BY total_time DESC LIMIT 5;

可以清空pg_stat_statements,从头开始
SELECT pg_stat_statements_reset();

select *
from pg_class pc
where 1=1
and pc.relkind in ('r','v')
and pc.relname like 'pg_stat%'
order by pc.relname
;

参考:http://postgres.cn/docs/9.6/pgstatstatements.html

pg_stat_statements相关推荐

  1. sql statements_Postgresql监控sql模块之pg_stat_statements模块--部署篇

    概述 今天主要介绍一下PG一个很重要的模块--pg_stat_statements模块,对于做性能观察还是很不错的. 一.pg_state_statements模块简介 1.简介 pg_stat_st ...

  2. 最有用的Postgres扩展:pg_stat_statements

    扩展能够扩展,改变和推进Postgres的行为.怎么样?通过挂钩到低级Postgres API挂钩. 横向扩展Postgres的开源 Citus数据库本身实现为 PostgreSQL扩展,它允许Cit ...

  3. PostgreSQL下安装pg_stat_statements

    安装过程如下:进入安装包的contrib/pg_stat_statements目录,执行编译和安装动作: [root@server pg_stat_statements]# pwd /soft/pos ...

  4. PG pg_stat_statements配置

    文章目录 说明 加载pg_stat_statements模块 配置pg_stat_statements采样参数 重启数据库 pg_stat_statements字段说明 说明 pg_stat_stat ...

  5. postgresql|数据库|插件学习(一)---postgresql-12的内置插件pg_stat_statements的启用和使用

    前言:         插件就是原软件的扩展功能.postgresql有非常多的各种各样的插件,当然了,插件不安装对于我们使用数据库并没有什么太多的影响,可能只是不舒服一些而已,但有一些插件我们如果有 ...

  6. Postgresql监控插件pg_stat_statements的安装

    安装步骤 1.连接服务器并切换数据库用户 2.找到pg_stat_statements文件的路径,在其下输入命令make&&make install安装pg_stat_statemen ...

  7. 使用pg_stat_statement监控pgsql遇到的问题

    pg_stat_statements是PG中监控数据库活动的重要插件,通过它可以获得SQL的统计信息,例如该SQL被调用了多少次,返回了多少记录,在读写数据上花了多少时间,这个对于监控数据库很有帮助. ...

  8. pgsql 运行状态 采集脚本

    脚本来自德哥的github地址,https://github.com/digoal/pgsql_admin_script/blob/master/generate_report.sh 内容如下: #! ...

  9. Install zabbix 2.2 + PostgreSQL + nginx + php on CentOS 6.x x64

    首先要阅读requirement, 结合你的环境, 满足日后的使用, 需要合理的选择硬件, 以及需要的依赖组件或库. https://www.zabbix.com/documentation/2.2/ ...

  10. Linux环境下查PG库的慢sql,postgresql慢SQL

    1.查询时间长的sql SELECT  calls, (total_time/calls) as average ,rows,  100.0 * shared_blks_hit /nullif(sha ...

最新文章

  1. 中国AI企业吸金旺但90%亏损 今年将迎倒闭潮
  2. Freemaker FTL指令常用标签及语法
  3. 【线上分享】短视频出海 — 用户体验衡量关键指标与优化策略
  4. JavaScriptSerializer序列化与反序列化--备忘
  5. 一厕难求!NASA悬赏三万五千美元,只为一个能在月球上用的马桶
  6. C++安全方向(三):3.5 SHA-1 算法分析和代码演示
  7. flask url_for()
  8. click事件在什么时候出发_关于JS 事件冒泡和onclick,click,on()事件触发顺序
  9. Jsp基本指令和动作
  10. 农场游戏开发记录十二
  11. Mac版WebStorm破解方案
  12. FPGA数字钟项目总结
  13. SharePoint 读取选项字段所有Choise
  14. Critical Reviews | 南农邹建文组综述全球农田土壤抗生素与耐药基因分布
  15. 如何查看电脑有几个内存条插槽
  16. Qt中鼠标的双击事件和单击事件的实现方式
  17. 【原创】2009年太白山穿越
  18. 《尽在双11——阿里巴巴技术演进与超越》全书精华摘录
  19. php使用PHPexcel类读取excel文件(循环读取每个单元格的数据)
  20. (配对问题)一个屋子有一个门(门是关闭的)和3盏电灯。屋外有3个开关,分别与这3盏灯相连

热门文章

  1. 火山引擎多场景下的云原生技术实践
  2. c语言实现十进制转换其他进制的代码
  3. javascript从入门到跑路-----小文的js学习笔记(6)-----三大流程控制语句---顺序控制、分支控制、循环控制
  4. Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day26】—— Spring框架3
  5. 视频,图像,像素,分辨率,RGB, YUV简单说明
  6. 08-3 Kubernetes 调度器 - 污点
  7. 密码学与网络安全—知识点总结
  8. vulntarget-a靶场的学习思考
  9. Redis 缓存清理策略
  10. 企业实战 -什么是代理服务器