怎么使用PostgreSQL的pg_stat_statements
发表于:2024-09-21 作者:千家信息网编辑
千家信息网最后更新 2024年09月21日,本篇内容主要讲解"怎么使用PostgreSQL的pg_stat_statements",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么使用PostgreS
千家信息网最后更新 2024年09月21日怎么使用PostgreSQL的pg_stat_statements
本篇内容主要讲解"怎么使用PostgreSQL的pg_stat_statements",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么使用PostgreSQL的pg_stat_statements"吧!
pg_stat_statements提供了一种跟踪所有SQL语句的手段。
进入pg_stat_statements目录,执行make/make install
[pg12@localhost pg_stat_statements]$ lsexpected pg_stat_statements--1.4--1.5.sql pg_stat_statements.controlMakefile pg_stat_statements--1.4.sql pg_stat_statements.opg_stat_statements--1.0--1.1.sql pg_stat_statements--1.5--1.6.sql pg_stat_statements.sopg_stat_statements--1.1--1.2.sql pg_stat_statements--1.6--1.7.sql pg_stat_statements--unpackaged--1.0.sqlpg_stat_statements--1.2--1.3.sql pg_stat_statements.c sqlpg_stat_statements--1.3--1.4.sql pg_stat_statements.conf[pg12@localhost pg_stat_statements]$ makemake -C ../../src/backend generated-headersmake[1]: Entering directory `/data/source/postgresql-12beta1/src/backend'make -C catalog distprep generated-header-symlinksmake[2]: Entering directory `/data/source/postgresql-12beta1/src/backend/catalog'make[2]: Nothing to be done for `distprep'.make[2]: Nothing to be done for `generated-header-symlinks'.make[2]: Leaving directory `/data/source/postgresql-12beta1/src/backend/catalog'make -C utils distprep generated-header-symlinksmake[2]: Entering directory `/data/source/postgresql-12beta1/src/backend/utils'make[2]: Nothing to be done for `distprep'.make[2]: Nothing to be done for `generated-header-symlinks'.make[2]: Leaving directory `/data/source/postgresql-12beta1/src/backend/utils'make[1]: Leaving directory `/data/source/postgresql-12beta1/src/backend'[pg12@localhost pg_stat_statements]$ make installmake -C ../../src/backend generated-headersmake[1]: Entering directory `/data/source/postgresql-12beta1/src/backend'make -C catalog distprep generated-header-symlinksmake[2]: Entering directory `/data/source/postgresql-12beta1/src/backend/catalog'make[2]: Nothing to be done for `distprep'.make[2]: Nothing to be done for `generated-header-symlinks'.make[2]: Leaving directory `/data/source/postgresql-12beta1/src/backend/catalog'make -C utils distprep generated-header-symlinksmake[2]: Entering directory `/data/source/postgresql-12beta1/src/backend/utils'make[2]: Nothing to be done for `distprep'.make[2]: Nothing to be done for `generated-header-symlinks'.make[2]: Leaving directory `/data/source/postgresql-12beta1/src/backend/utils'make[1]: Leaving directory `/data/source/postgresql-12beta1/src/backend'/usr/bin/mkdir -p '/appdb/xdb/pg12beta1/lib/postgresql'/usr/bin/mkdir -p '/appdb/xdb/pg12beta1/share/postgresql/extension'/usr/bin/mkdir -p '/appdb/xdb/pg12beta1/share/postgresql/extension'/usr/bin/install -c -m 755 pg_stat_statements.so '/appdb/xdb/pg12beta1/lib/postgresql/pg_stat_statements.so'/usr/bin/install -c -m 644 ./pg_stat_statements.control '/appdb/xdb/pg12beta1/share/postgresql/extension/'/usr/bin/install -c -m 644 ./pg_stat_statements--1.4.sql ./pg_stat_statements--1.6--1.7.sql ./pg_stat_statements--1.5--1.6.sql ./pg_stat_statements--1.4--1.5.sql ./pg_stat_statements--1.3--1.4.sql ./pg_stat_statements--1.2--1.3.sql ./pg_stat_statements--1.1--1.2.sql ./pg_stat_statements--1.0--1.1.sql ./pg_stat_statements--unpackaged--1.0.sql '/appdb/xdb/pg12beta1/share/postgresql/extension/'[pg12@localhost pg_stat_statements]$
使用前需在配置文件中添加预加载共享链接库,否则会报错:
testdb=# create extension pg_stat_statements;CREATE EXTENSIONtestdb=# select * from pg_stat_statements;psql: ERROR: pg_stat_statements must be loaded via shared_preload_libraries
在postgresql.conf文件中修改shared_preload_libraries参数:
[pg12@localhost pg12db1]$ grep 'shared_preload' postgresql.conf shared_preload_libraries = 'pg_stat_statements' # (change requires restart)
注意:修改该参数后需要重启数据库实例.
下面是简单的使用:
testdb=# \xExpanded display is on.testdb=# select * from pg_stat_statements;-[ RECORD 1 ]-------+---------------------------------userid | 10dbid | 16384queryid | 6343734953611294604query | select * from pg_stat_statementscalls | 2total_time | 0.618297min_time | 0.303231max_time | 0.315066mean_time | 0.3091485stddev_time | 0.00591750000000002rows | 2shared_blks_hit | 0shared_blks_read | 0shared_blks_dirtied | 0shared_blks_written | 0local_blks_hit | 0local_blks_read | 0local_blks_dirtied | 0local_blks_written | 0temp_blks_read | 0temp_blks_written | 0blk_read_time | 0blk_write_time | 0-[ RECORD 2 ]-------+---------------------------------userid | 10dbid | 16384queryid | -2568307067200732111query | select * from t1calls | 1total_time | 876.219199min_time | 876.219199max_time | 876.219199mean_time | 876.219199stddev_time | 0rows | 1100000shared_blks_hit | 0shared_blks_read | 5946shared_blks_dirtied | 0shared_blks_written | 0local_blks_hit | 0local_blks_read | 0local_blks_dirtied | 0local_blks_written | 0temp_blks_read | 0temp_blks_written | 0blk_read_time | 0blk_write_time | 0
查询汇总统计信息
testdb=# SELECT query, (total_time / 1000 / 60) as total, (total_time/calls) as avgFROM pg_stat_statements ORDER BY 1 DESC LIMIT 100; query | total | avg -------------------------------------+------------------------+--------------------- SELECT +| 1.5928199999999998e-05 | 0.318564 (total_time / $1 / $2) as total, +| | (total_time/calls) as avg, +| | query +| | FROM pg_stat_statements +| | ORDER BY 1 DESC +| | LIMIT $3 | | SELECT +| 4.9146500000000005e-06 | 0.294879 (total_time / $1 / $2) as total, +| | (total_time/calls) as avg +| | FROM pg_stat_statements +| | ORDER BY 1 DESC +| | LIMIT $3 | | select * from t1 | 0.014603653316666666 | 876.219199 select * from pg_stat_statements | 1.5696116666666667e-05 | 0.31392233333333336(4 rows)...testdb=# testdb=# SELECT testdb-# query, testdb-# round((total_time / 1000 / 60)::numeric,4) as total, testdb-# round((total_time/calls)::numeric,4) as avgtestdb-# FROM pg_stat_statements testdb-# WHERE query like '%t1%'testdb-# ORDER BY 1 DESC testdb-# LIMIT 100; query | total | avg --------------------------------+--------+---------- select * from t1 where id = $1 | 0.0022 | 129.9684 select * from t1 where id < $1 | 0.0020 | 121.3334 select * from t1 | 0.0146 | 876.2192(3 rows)
查询条件中id = xx,实际值被替换为占位符($x).
到此,相信大家对"怎么使用PostgreSQL的pg_stat_statements"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
查询
内容
参数
实际
文件
学习
实用
更深
信息
兴趣
实例
实用性
手段
操作简单
数据
数据库
方法
更多
朋友
条件
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
我的世界服务器欢乐故事
数据库实现的数据结构
南京太格网络技术有限公司
广州网搜网络技术
软件开发日常工作随笔
闵行区技术软件开发代理品牌
玄武区网络技术研究
数据科学数据库大数据技术
网络安全科技馆图片
智能制造网络安全创新论坛
重庆中元数据库
数据库查看死锁的进程
hive命令创建数据库
网络技术服务做账
2020变更调查数据库
连接数据库失败请确认
和平精英有雪地地图的服务器
闵行区现代软件开发服务厂家直销
网络技术谜语
一般来说数据库的外模式
ftviewse数据服务器配置
网络安全证书哪个大学好
江苏前端软件开发多少钱
csgo哪个服务器没挂
安全检测服务器禁止ping
有关网络安全主题小报
连接不到uplay的服务器
sql 数据库授权费用
中文数据库文献免费下载
服务器能做数据存储和调用