暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

PostgreSQL监控(一)---pg_stat_statements

新运维新数据 2021-08-25
2742

各位新朋友~记得先点蓝字关注我哦~


#1

pg_stat_statements

在日常运维工作中,我们会经常需要定位一些SQL引起的性能问题,包括分析执行SQL的统计信息、定位抓取慢SQL语句等等。本期就为大家介绍一款监控SQL语句的扩展pg_stat_statements


pg_stat_statements模块提供了一个方法用来追踪服务器所执行的所有SQL语句执行统计信息,也可以记录数据库的资源开销,得益于该模块的作用,使得PostgreSQL在一些性能分析的问题上也获得了横向的扩展,直观且快捷地展现出SQL语句对于数据库的性能影响。


#2

安装配置pg_stat_statements

下面就介绍一下如何安装并使用这个扩展,如果在安装数据库服务的时候已经编译好了,那就可以在数据库内直接创建扩展即可。


当然也可以对其进行单独的编译安装,找到源码目录,进入到pg_stat_statements目录下。

    $ cd src/contrib/pg_stat_statements/
    $ make && make install


    完成了扩展的编译安装,我们还需要修改配置文件中的相应参数' shared_preload_libraries ',这个变量指定一个或者多个要在服务器启动时预载入的共享库,使用pg_stat_statements扩展需要将其加入共享库中

      $ vi postgresql.conf
      shared_preload_libraries='pg_stat_statements'


      可以根据自己的需要配置以下几个常用的参数

        pg_stat_statements.max = 10000      #保留多少条统计信息
        pg_stat_statements.track = all #记录所有sql
        pg_stat_statements.track_utility = off #是否跟踪非DML语句
        pg_stat_statements.save = on #重启之后是否保留统计信息


        配置完成后需要重启数据库服务,然后登录数据库,创建扩展

          postgres=# create extension pg_stat_statements;


          至此,扩展安装完成,可以看到的是,我们获得了一个新的视图'pg_stat_statements',SQL执行的统计信息都可以从该视图获取信息,文末附录了该视图各字段的解释


          #3

          常用统计SQL

          以下列出了几个常用的统计SQL供参考

          最耗时的TOP 5 SQL

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


            最消耗IO的TOP 5 SQL

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


              响应时间抖动最严重的TOP 5 SQL

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

                快速、直观的SQL统计信息,能够帮助运维工程师在日常维护工作中更迅速地定位一些因为执行SQL引起的数据库性能问题,pg_stat_statements无疑提供了一个极为高效的方法和途径!

                #4

                附录

                pg_stat_statements字段释义



                美创运维中心数据库服务团队拥有Oracle ACE 1人、OCM 10余人、数十名Oracle OCP、MySQL OCP、红帽RHCA、中间件weblogic、tuxedo认证、达梦工程师 ,著有《Oracle DBA实战攻略》,《Oracle数据库性能优化方法和最佳实践》,《Oracle内核技术揭秘》等多本数据运维优化书籍。目前运维各类数据库合计2000余套,精通Oracle、MySQL、SQLServer、DB2、PostgreSQL、达梦等主流商业和开源数据库。并成为首批国内达梦战略合作伙伴之一,拥有海量经验和完善的人员培养体系。并同时提供超融合,私有云整体解决方案。


                文章转载自新运维新数据,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论