sql statements_Postgresql监控sql模块之pg_stat_statements模块--部署篇
概述
今天主要介绍一下PG一个很重要的模块--pg_stat_statements模块,对于做性能观察还是很不错的。
一、pg_state_statements模块简介
1、简介
pg_stat_statements模块提供一种方法追踪一个服务器所执行的所有 SQL 语句的执行统计信息,可以用于统计数据库的资源开销,分析TOP SQL。
该模块必须通过在postgresql.conf的shared_preload_libraries中增加pg_stat_statements来载入,因为它需要额外的共享内存。
这意味着增加或移除该模块需要一次服务器重启。
当pg_stat_statements被载入时,它会跟踪该服务器 的所有数据库的统计信息。
该模块提供了一个视图 pg_stat_statements以及函数pg_stat_statements_reset 和pg_stat_statements用于访问和操纵这些统计信息。
这些视图和函数不是全局可用的,但是可以用CREATE EXTENSION pg_stat_statements 为特定数据库启用它们。
2、字段含义
pg_stat_statements字段列含义如下
3、常用函数
pg_stat_statements_reset() returns void
pg_stat_statements_reset丢弃目前由pg_stat_statements统计的所有信息,默认情况下,这个函数只能运行在超级用户下。
4、常用变量
1)pg_stat_statements.max(integer)
pg_stat_statements.max是最大追踪的统计数据数量(即,视图中的最大行数)。如果数据量大于最大值,那么执行最少的语句将会被丢弃(本人测试,如果语句执行次数都为1时,其次是时间久的数据被丢弃),这个值默认是1000,这个变量在服务启动前设置。
2)pg_stat_statements.track(enum)
pg_stat_statements.track控制统计数据规则,top用于追踪top-level statement(直接由客户端方发送的),all还会追踪嵌套的statements(例如在函数中调用的statements)
3)pg_stat_statements.track_utility(boolen)
pg_stat_statements.track_utility控制是否跟踪公共程序命令(utility commands),公共程序命令是SELECT/INSERT/UPDATE/DELETE以外的命令,默认值是开启,只有超级用户可以更改此设置。
4)pg_stat_statements.save(boolean)
pg_stat_statements.save指定在服务器关闭时,是否保存统计信息。如果设置off,服务关闭时,统计信息将不会保存。默认值是on。这个值只能够在postgresql.conf中或者命令行设置。
该模块需要额外的共享内存,内存大小大致为pg_stat_statements.max* track_activity_query_size。要注意的是,一旦模块被加载,即使pg_stat_statements.track设置为none,共享内存都会被消耗。
二、安装pg_stat_statements
1、编译安装pg_stat_statements模块
pg_stat_statements是PostgreSQL的核心插件之一,可以在编译PostgreSQL时安装,也可以单独安装。如果$pgpath/share/extension目录下存在pg_stat_statements--1.0.sql,说明安装成功了
find / -name 'pg_stat_statements'cd /opt/software/postgresql-12.2/contrib/pg_stat_statementsmake && make install
2、修改配置文件postgresql.conf
$ vim /data/pgdata/data/postgresql.conf====================================================================================#------------------------------------------------------------------------------# PG_STAT_STATEMENTS OPTIONS#------------------------------------------------------------------------------shared_preload_libraries = 'pg_stat_statements' #加载pg_stat_statements模块track_io_timing = on #跟踪IO消耗的时间pg_stat_statements.max = 10000 #最多保留多少条统计信息,通过LRU算法,覆盖老的记录。pg_stat_statements.track = all #all:所有SQL包括函数内嵌套的SQL,top:直接执行的SQL(函数内的sql不被跟踪),none:不跟踪pg_stat_statements.track_utility=on # 是否跟踪非DML语句 (例如DDL,DCL),on表示跟踪, off表示不跟踪pg_stat_statements.save = on # 重启后是否保留统计信息 #track_activity_query_size = 2048 #设置单条SQL的最长长度,超过被截断显示
3、重启PG服务
cd /opt/postgres/bin./pg_ctl restart -m fast./pg_ctl status
4、加载pg_stat_statements模块
到这里就完成pg_stat_statements模块安装了。
./psqlcreate extension pg_stat_statements; dx
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
sql statements_Postgresql监控sql模块之pg_stat_statements模块--部署篇相关推荐
- SpringBoot 如何统计、监控 SQL运行情况?
点击关注公众号,实用技术文章及时了解 来源:juejin.cn/post/7062506923194581029 1 基本概念 Druid 是Java语言中最好的数据库连接池. 虽然 HikariCP ...
- SpringBoot使用Druid监控SQL
文章目录 1 监控mybatis下SQL 1.1 Druid简介 1.2 添加pom.xml依赖 1.3 配置相关属性 1.3.1 如何配置 Filter 1.4 监控页面 1.5 sql监控 1.6 ...
- springboot整合druid 监控sql
介绍 Druid是阿里巴巴开发的号称为监控而生的数据库连接池,在功能.性能.扩展性方面,都超过其他数据库连接池,包括DBCP.C3P0.BoneCP.Proxool.JBoss DataSource等 ...
- 集中化监控SQL Server数据库
英文原文地址:https://www.simple-talk.com/sql/database-administration/centralize-your-database-monitoring-p ...
- UAVStack的慢SQL数据库监控功能及其实现
作者:王林林 转载自:UAVStack智能运维 来源:宜信技术学院 技术沙龙001期|AI中台:一种敏捷的智能业务支持方案|宜信技术沙龙 3月28日晚8点线上直播,点击报名 UAVStack是一个全维 ...
- SQL Server 监控系列(文章索引)
一.前言(Introduction) SQL Server监控在很多时候可以帮助我们了解数据库做了些什么,比如谁谁在什么时候修改了表结构,谁谁在删除了某个对象,当这些事情发生了,老板在后面追着说这是谁 ...
- ORACLE常用性能监控SQL【一】
目录(?)[+] 系列 ORACLE常用性能监控SQL[一] ORACLE常用性能监控SQL[二] Oracle-动态性能视图解读 系列 死锁后的解决办法 生成Kill Session语句 查看导致死 ...
- sql server监控
sql server监控 http://www.mssqltips.com/sqlservertip/2522/sql-server-monitoring-checklist/ 1.查看sql ser ...
- 第三篇——第二部分——第六文 监控SQL Server镜像
原文: 第三篇--第二部分--第六文 监控SQL Server镜像 原文出处:http://blog.csdn.net/dba_huangzj/article/details/26846203 要优化 ...
最新文章
- 【LaTeX】E喵的LaTeX新手入门教程(4)图表
- bzoj4592[SHOI2015]脑洞治疗仪
- git lfs出现This repository is over its data quota
- 度量时间差和jiffies计数器
- 使用Tomcat Catalina进行Tomcat服务器虚拟目录设置
- php使用file_get_contents 或者curl 发送get/post 请求 的方法总结
- bde连接mysql设置,delphi通过BDE方式连接数据库以及程序Demo
- ISO27001标准的起源和发展
- 玩转华为ENSP模拟器系列 | 接入用户采用Windows7客户端通过IKEv2方式接入总部VdPdNd(采用证书认证方式)
- 怎么用java做日历_怎么用java做日历?实例讲解
- sim7600ce使用MQTT协议总结
- linux tty字体,ArchLinux TTY 中文字体渲染
- [NOIP2003]侦探推理 详解+python实现
- 最大后验概率、最大似然、期望最大化
- java方法返回值_如何高效率的学习Java函数返回值
- 【GraphMaker】Unity3D图表——柱状图、折线图、饼图
- 如何轻松的将文字转语音
- c语言图像处理傅里叶函数,数字图像的傅里叶变换.doc
- 基于 Vue 的直播播放器实战
- ios蓝牙扫描指定的设备scanForPeripheralsWithServices