postgresql-pg_stat_statements

前端之家收集整理的这篇文章主要介绍了postgresql-pg_stat_statements前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

修改postgresql.conf文件,并重启postgresql

  1. shared_preload_libraries = 'pg_stat_statements'
  2. pg_stat_statements.max = 1000 //跟踪的最大语句数量,缺省是1000条
  3. pg_stat_statements.track = all //控制那些语句会被追踪,可选top(缺省),all和none

创建pg_stat_statements

  1. create extension pg_stat_statements; //创建pg_stat_statements extension
  2. CREATE EXTENSION
  3. \d pg_stat_statements; //查看视图结构
  4. View "public.pg_stat_statements"
  5. Column | Type | Modifiers
  6. ---------------------+------------------+-----------
  7. userid | oid |
  8. dbid | oid |
  9. query | text |
  10. calls | bigint |
  11. total_time | double precision |
  12. rows | bigint |
  13. shared_blks_hit | bigint |
  14. shared_blks_read | bigint |
  15. shared_blks_dirtied | bigint |
  16. shared_blks_written | bigint |
  17. local_blks_hit | bigint |
  18. local_blks_read | bigint |
  19. local_blks_dirtied | bigint |
  20. local_blks_written | bigint |
  21. temp_blks_read | bigint |
  22. temp_blks_written | bigint |
  23. blk_read_time | double precision |
  24. blk_write_time | double precision |

查找执行最慢的语句(查最慢10条sql语句):

  1. select query,calls,total_time,(total_time/calls) as average,rows,100.0*shared_blks_hit/nullif(shared_blks_hit+shared_blks_read,0) as hit_percent from pg_stat_statements order by average desc limit 10;

为使输出精简,也可执行以下语句(最慢2条语句):

  1. select query,0) as hit_percent from pg_stat_statements order by average desc limit 2;

猜你在找的Postgre SQL相关文章