PostgreSQL下安装pg_stat_statements

安装过程如下:进入安装包的contrib/pg_stat_statements目录,执行编译和安装动作:

1 [root@server pg_stat_statements]# pwd
2 /soft/postgresql-9.1.2/contrib/pg_stat_statements
3 [root@server pg_stat_statements]# make && make install
4 make: `all' に対して行うべき事はありません.
5 /bin/mkdir -p '/usr/local/pgsql/lib'
6 /bin/mkdir -p '/usr/local/pgsql/share/extension'
7 /bin/sh ../../config/install-sh -c -m 755  pg_stat_statements.so '/usr/local/pgsql/lib/pg_stat_statements.so'
8 /bin/sh ../../config/install-sh -c -m 644 ./pg_stat_statements.control '/usr/local/pgsql/share/extension/'
9 /bin/sh ../../config/install-sh -c -m 644 ./pg_stat_statements--1.0.sql ./pg_stat_statements--unpackaged--1.0.sql  '/usr/local/pgsql/share/extension/'

在data/postgresql.conf中,进行配置:

shared_preload_libraries = 'pg_stat_statements'      

pg_stat_statements.max = 1000

pg_stat_statements.track = all
shared_preload_libraries = 'pg_stat_statements',表示要在启动时导入pg_stat_statements 动态库。
pg_stat_statements.max = 1000,表示监控的语句最多为1000句。
pg_stat_statements.track = top,表示不监控嵌套的sql语句。
pg_stat_statements.track_utility = true,表示对 INSERT/UPDATE/DELETE/SELECT 之外的sql动作也作监控。
pg_stat_statements.save = true,表示当postgresql停止时,把信息存入磁盘文件以备下次启动时再使用。

重新启动 postgresql,创建sql语句:
create extension pg_stat_statements;

查询哪些sql语句执行效率慢:
  1. SELECT  query, calls, total_time(total_time/callsas average ,rows
  2.         100.0 * shared_blks_hit /nullif(shared_blks_hit + shared_blks_read, 0AS hit_percent 
  3. FROM    pg_stat_statements 
  4. ORDER   BY average DESC LIMIT 10;
统计结果一直都在,重启也不会清零,那么统计结果如何清零重新统计呢?执行下面SQL即可:
    1. select pg_stat_statements_reset(;


 
 

猜你喜欢

转载自www.cnblogs.com/junrong624/p/10008703.html