对HGDB的pg_stat_statements介绍(APP)

目录

环境

文档用途

详细信息

环境

系统平台:Microsoft Windows (64-bit) 2012

版本:5.6.5

文档用途

  对pg_stat_statements进行讲解,并对表里的关键列进行讲解

 

详细信息

一、介绍

pg_stat_statements模块提供一种方法追踪一个服务器所执行的所有 SQL 语句的执行统计信息,可以用于统计数据库的资源开销,分析TOP SQL。瀚高数据库是默认安装并且自动配置好的,可以直接查询:

select * from pg_stat_statements;

pg_stat_statements的字段很多,下面就讲几个比较常用的。

二、应用

分析TOP SQL查询pg_stat_statements视图,可以得到统计信息

SQL语句中的一些过滤条件在pg_stat_statements中会被替换成变量,减少重复显示的问题。

pg_stat_statements视图包含了一些重要的信息。

例如:

1. SQL的调用次数,总的耗时,最快执行时间,最慢执行时间,平均执行时间,执行时间的方差(看出抖动),总共扫描或返回或处理了多少行;

2. shared buffer的使用情况,命中,未命中,产生脏块,驱逐脏块;

3. local buffer的使用情况,命中,未命中,产生脏块,驱逐脏块;

4. temp buffer的使用情况,读了多少脏块,驱逐脏块;

5. 数据块的读写时间。

单次调用最耗I/O的SQL:

 

select userid::regrole, dbid, query from pg_stat_statements order by (blk_read_time+blk_write_time) /calls desc limit 5;

总消耗I/O的SQL:

select userid::regrole, dbid, query from pg_stat_statements order by (blk_read_time+blk_write_time) desc limit 5;

单次调用最耗时SQL:

select userid::regrole, dbid, query from pg_stat_statements order by mean_time desc limit 5;

总最耗时SQL:

select userid::regrole, dbid, query from pg_stat_statements order by total_time desc limit 5;

响应时间抖动最严重的SQL:

select userid::regrole, dbid, query from pg_stat_statements order by stddev_time desc limit 5;

最耗共享内存SQL:

select userid::regrole, dbid, query from pg_stat_statements order by (shared_blks_hit+shared_blks_dirtied) desc limit 5;

最耗临时空间SQL:

select userid::regrole, dbid, query from pg_stat_statements order by temp_blks_written desc limit 5;

pg_stat_statements的信息是从安装时开始就记录的统计信息,或者是从上次重置统计信息时开始记录。可以使用pg_stat_statements_reset()函数重置统计信息。从上面的总结中可以得出:用pg_stat_statements可以很轻易找到哪些sql执行的时间比较长,从而可以快速锁定相关的sql进行优化

 

更多详细信息请登录【瀚高技术支持平台】查看https://support.highgo.com/#/index/docContentHighgo/d932c93701014b9e 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值