开发者社区> 问答> 正文

PostgreSQL如何查看慢SQL?

明虚 2015-12-18 00:44:30 227

如题

分享到
取消 提交回答
全部回答(3)
  • pger_joan
    2019-07-16 11:49:50

    pg_stat_statements 只是记录一些统计信息,如果想知道运行时语句的当时执行计划,那么需要配置auto_explain插件,这个会记录大于你指定时间SQL语句的执行计划,更有利于分析SQL语句。

    0 0
  • 窦贤明
    2019-07-16 11:49:50

    目前RDS For PG的用户也可以采用pg_stat_statements插件来查询慢SQL。如:

    select total_time / calls as avg, * from pg_stat_statements order by avg DESC;

    关于pg_stat_statements更详细的,可以参考这里:

    1. http://www.postgresql.org/docs/9.4/static/pgstatstatements.html
    1 0
  • 德哥
    2019-07-16 11:49:50
    有几种情况  
    1. 查看历史慢SQL  
    首先要设置log_min_duration_statement,记录慢SQL。  
    然后在参数log_directory 指定的目录中查看日志。  
    
    2. 查看当前慢SQL  
    例如查询执行时间超过1秒的SQL  
    select * from pg_stat_activity where state<>'idle' and now()-query_start > interval '1 s' order by query_start ;  
    0 0
添加回答