安装配置

--编译安装
hgdb默认编译安装好,目录 /opt/HighGo4.5.7-see/share/postgresql/extension--参数配置
#pg_stat_statements seting
shared_preload_libraries='pg_stat_statements'
pg_stat_statements.max = 10000
pg_stat_statements.track = all
pg_stat_statements.track_utility = off
pg_stat_statements.save = on
track_io_timing = on
track_activity_query_size = 2048--重启数据库
pg_ctl restart -m fast --创建扩展
create extension pg_stat_statements;

参数说明

shared_preload_libraries:加载pg_stat_statements模块。
pg_stat_statements.max:在pg_stat_statements中最多保留多少条统计信息。
pg_stat_statements.track: all - (所有SQL包括函数内嵌套的SQL), top - 直接执行的SQL(函数内的sql不被跟踪), none - (不跟踪)。
pg_stat_statements.track_utility:是否跟踪非DML语句 (例如DDL,DCL),on表示跟踪, off表示不跟踪。
pg_stat_statements.save:重启后是否保留统计信息。
track_io_timing:跟踪IO消耗的时间。
track_activity_query_size:设置单条SQL的最长长度,超过被截断显示。

查询使用

--占用 CPU TOP5
select userid::regrole 用户名, (select datname from pg_database where oid=dbid)数据库,calls as 总调用次数,round((100 * total_time / sum(total_time::numeric) over ())::numeric, 2) as cpu使用率,query 查询语句 from  pg_stat_statements order by total_time desc limit 5;--占用内存 TOP5
select userid::regrole 用户名,(select datname from pg_database where oid=dbid)数据库,round((shared_blks_hit+shared_blks_dirtied)/1024::numeric,2) 占用内存mb,query 查询语句 from pg_stat_statements order by (shared_blks_hit+shared_blks_dirtied) desc limit 5; --占用IO TOP5(track_io_timing 需被启用,否则为零)
show track_io_timing;
alter system set track_io_timing=on;
select pg_reload_conf();
show track_io_timing;select userid::regrole 用户名, (select datname from pg_database where oid=dbid) 数据库, (blk_read_time+blk_write_time) IO读写耗时ms,query 查询语句 from pg_stat_statements order by (blk_read_time+blk_write_time) desc limit 5;--占用临时空间 TOP5
select userid::regrole 用户名, (select datname from pg_database where oid=dbid)数据库,round((temp_blks_written/1024)::numeric, 2) 占用临时空间mb,query 查询语句 from pg_stat_statements order by temp_blks_written desc limit 5;--耗时 TOP5
select userid::regrole 用户名, (select datname from pg_database where oid=dbid) 数据库,calls 总调用次数,round(total_time::numeric, 2) 总耗时ms,query 查询语句 from pg_stat_statements order by total_time desc limit 5;--响应时间抖动 TOP5
select userid::regrole 用户名, (select datname from pg_database where oid=dbid) 数据库,round(stddev_time::numeric, 2) 响应时间抖动ms,query 查询语句 from pg_stat_statements order by stddev_time desc limit 5;--单次调用耗时 TOP5
select userid::regrole 用户名, (select datname from pg_database where oid=dbid) 数据库,round(mean_time::numeric, 2) 单次调用耗时ms,query 查询语句 from pg_stat_statements order by mean_time desc limit 5; --单次调用占用IO TOP5(track_io_timing 需被启用,否则为零)
select userid::regrole 用户名, (select datname from pg_database where oid=dbid) 数据库,(blk_read_time+blk_write_time) IO读写耗时ms,query 查询语句 from pg_stat_statements order by (blk_read_time+blk_write_time)/calls desc limit 5;--清理视图统计信息
select pg_stat_statements_reset();

pg_stat_statements 视图字段说明

userid:执行该语句的用户的 OID。
dbid:在其中执行该语句的数据库的 OID。
queryid:内部哈希码,从语句的解析树计算得来。
query:语句的文本形式。
calls:被执行的次数。
total_time:在该语句中花费的总时间,以毫秒计。
min_time:在该语句中花费的最小时间,以毫秒计。
max_time:在该语句中花费的最大时间,以毫秒计。
mean_time:在该语句中花费的平均时间,以毫秒计。
stddev_time:在该语句中花费时间的总体标准偏差,以毫秒计。
rows:该语句检索或影响的行总数。
shared_blks_hit:该语句造成的共享块缓冲命中总数。
shared_blks_read:该语句读取的共享块的总数。
shared_blks_dirtied:该语句弄脏的共享块的总数。
shared_blks_written:该语句写入的共享块的总数。
local_blks_hit:该语句造成的本地块缓冲命中总数。
local_blks_read:该语句读取的本地块的总数。
local_blks_dirtied:该语句弄脏的本地块的总数。
local_blks_written:该语句写入的本地块的总数。
temp_blks_read:该语句读取的临时块的总数。
temp_blks_written:该语句写入的临时块的总数。
blk_read_time:该语句花在读取块上的总时间,以毫秒计(如果track_io_timing被启用,否则为零)。
blk_write_time:该语句花在写入块上的总时间,以毫秒计(如果track_io_timing被启用,否则为零)。

HGDB pg_stat_statements 用法相关推荐

  1. HGDB中any用法

    目录 文档用途 详细信息 文档用途 在本教程中,您将学习如何使用 HGDB ANY 运算符将标量值与子查询返回的一组值进行比较. 详细信息 HGDB ANY 运算符简介 ANY 运算符用于将一个标量( ...

  2. c语言中external,static关键字用法

    static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有 ...

  3. Pandas_transform的用法

    先来看一个实例问题. 如下销售数据中展现了三笔订单,每笔订单买了多种商品,求每种商品销售额占该笔订单总金额的比例.例如第一条数据的最终结果为:235.83 / (235.83+232.32+107.9 ...

  4. Python中yield和yield from的用法

    yield 后面接的是 future 对象 调用方 委托生成器 yield from 直接给出循环后的结果 yield from 委托者和子生成器直接通信 yield from 直接处理stopIte ...

  5. pytorch学习 中 torch.squeeze() 和torch.unsqueeze()的用法

    squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...

  6. python yield 和 yield from用法总结

    #例1. 简单输出斐波那契數列前 N 个数 #缺点:该函数可复用性较差,因为 fab 函数返回 None,其他函数无法获得该函数生成的数列 #要提高 fab 函数的可复用性,最好不要直接打印出数列,而 ...

  7. tf.nn.embedding_lookup()的用法

    函数: tf.nn.embedding_lookup( params, ids, partition_strategy='mod', name=None, validate_indices=True, ...

  8. OpenMP用法大全

    OpenMP基本概念 OpenMP是一种用于共享内存并行系统的多线程程序设计方案,支持的编程语言包括C.C++和Fortran.OpenMP提供了对并行算法的高层抽象描述,特别适合在多核CPU机器上的 ...

  9. Dorado用法与示例

    Dorado用法与示例 dorado用后总结 一.dorado概念 dorado的产品全名是"dorado展现中间件".从产品形态上dorado由两部分组成,第一部分是一个具有AJ ...

  10. TensorFlow用法

    TensorFlow用法 什么是TensorFlow TensorFlow是一个开源软件库,用于使用数据流图进行数值计算.图中的节点表示数学运算,而图的边缘表示流动的多维数据数组(张量).这种灵活的体 ...

最新文章

  1. 解析 http 请求 header 错误_详解http报文(2)-web容器是如何解析http报文的
  2. switch判断条件
  3. HTTP权威指南阅读笔记一:HTTP概述
  4. Guice之Servlet基础
  5. 【干货】卷积神经网络Alex-Net、VGG-Nets、Network-In-Network案例分析
  6. python断言失败_python异常处理、断言
  7. 【报告分享】2020年她趋势报告.pdf(附下载链接)
  8. 转:iPhone官换机和新机的区别
  9. @Transactional注解属性(3)
  10. mysql 关键字 desc_mysql数据库表字段使用DESC等关键字报错及解决方法
  11. linux下intel IPP 加密库安装及快速上手
  12. 8.用C/C++实现一个科学计算器———(超级详细完整,包含C/C++版本和Qt版本)
  13. Linux 用ssh远程登录及scp传输文件
  14. Docker容器技术 笔记
  15. [散分] 眼见为实?_眼见为实
  16. 华为云文档数据库服务更安全
  17. 嵌入式裸机课程之C语言程序调用和重定位学习笔记
  18. 关于localhost访问特别快而nginx配置代理后转发特别慢的解决
  19. 黑马程序员--Objective-C之--OC的初步体验
  20. 《软件方法》第8章 分析 之 分析类图(3)

热门文章

  1. 关于编译优化选项o3的问题
  2. 在web页面实时播放监控视频
  3. 乡村少年宫计算机教师简介,乡村少年宫教师感言
  4. 从MSDN我告诉你下载镜像
  5. FlashFXP,flashfxp连接失败
  6. 去掉Dedecms幻灯片的标题文字和绿色背景
  7. POJ 2774 Long Long Message
  8. 记录Android平铺展开效果属性动画
  9. 国外60个专业3D模型网站
  10. 远方测试软件,远方测试仪操作指导书