Postgresql数据库性能监控之pg_stat_statements

1.pg_stat_statements安装

安装postgresql的pg_stat_statements模块

  • 1)cd postgresql二进制包解压目录下的contrib/pg_stat_statements目录下
    Postgresql数据库性能监控之pg_stat_statements_第1张图片
  • 2)安装
    使用命令“make” ,“make install"安装

在这里插入图片描述

  • 3)在postgresql.conf中设置参数,重启数据库
    `shared_preload_libraries =‘pg_stat_statements’

pg_stat_statements.max = 10000

pg_stat_statements.track = all`

2.pg_stat_statements使用

1)建立视图

create extension pg_stat_statements;

2)执行性能监控查询语句
该查询语句可以获得pg数据库近期执行比较高的慢sql,其中包括查询id,该sql被调用的次数,sql执行的总时间,sql执行的平均时间,调用返回的行数,命中率等

select queryid,
       calls,
    total_time,
    (total_time/calls) as avrage,
    rows,
    100.0*shared_blks_hit/nullif(shared_blks_hit+shared_blks_read,0) AS hit_percent
from mpmdb.pg_stat_statements
order by avrage desc limit 10;

3)清除监控的sql,归零开始监控

select pg_stat_statements_reset();

3.使用过程中出现的问题

想用checkdb即(monitior权限)用户使用pg_stat_statements,在安装过程中出现以下问题

xue=> create extension pg_stat_statements;
ERROR:  permission denied to create extension "pg_stat_statements"
HINT:  Must be superuser to create this extension.
xue=> \q

出现这个问题,使用\du,去查询权限,是因为checkdb用户没有使用权限,使用如下命令赋权限

grant usage on schema mpmdb to checkdb;

你可能感兴趣的:(Postgresql性能监控)