• 阿里云河南授权服务中心--[ 阿里云精英级合作伙伴 ]
  • 阿里云河南授权服务中心电话 :0371-56982772

RDS for PgSQL 慢 SQL 排
发布时间:2016-07-07 16:31

        RDS for PgSQL 暂时还没有对外提供 SQL 审计 和 慢 SQL 的统计功能。而用户在使用的过程中可能会由于自身数据库的优化程度不够导致 CPU 或者 IOPS 负载较高。这种情况下用户可以使用如下的 SQL 查询数据库中的表信息以及性能损耗点的统计信息。

      1. 获取顺序扫描高的表

       如果数据表的索引建立不合适会导致出现大量的全表扫描。全表扫描会带来大量的逻辑读的请求;特别当实例内存规格不大的情况下还会出现物理读的情况,因此需要着重避免此类情况的发生。通过如下的 SQL 可以查看到哪张表出现了大量的顺序扫描的情况:

select*frompg_stat_all_tableswhereseq_scan>0andschemaname!='pg_catalog'andschemaname!='information_schema'orderbyn_live_tupdesc;

      2. 获取高 IO 消耗的查询

IOPS 是实例的重要性能指标之一。实例出现 IOPS 负载较高的情况主要由于以下几点原因:

      1)内存规格较小,在执行查询的时候缓存无法存储足够量的数据,导致大量的数据换入和换出。

      2)实例 IOPS 规格不足。

      3)不合理的查询导致出现物理读写的情况,可以通过下面的 SQL 查看消耗 IO 最高的 SQL 语句:

      SELECTquery,

         shared_blks_read,

         shared_blks_read / callsasreads_per_query, 

         blk_read_time /rowsasread_time_row

         FROM     pg_stat_statements

         WHERE         calls>0

                     AND  rows>0

                             ORDER      BYshared_blks_readdesc

                                  LIMIT          10;

相关资讯

售前咨询:

0371-56982772