分析 PostgreSQL 中运行的查询 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

分析 PostgreSQL 中运行的查询

PostgreSQL 仅在摘要级别收集 SQL 统计数据。语句级别没有显示任何统计数据。

RDS PostgreSQL 的要统计数据

要查看 SQL 摘要统计数据,PostgreSQL 必须加载 pg_stat_statements 库。对于与 PostgreSQL 11 或更高版本兼容的 RDS PostgreSQL 数据库实例,数据库在预设情况下将加载此库。对于与 PostgreSQL 10 或更低版本兼容的 PostgreSQL 数据库实例,请手动启用此库。要手动启用该库,请在与数据库实例关联的数据库参数组中的 pg_stat_statements 中添加 shared_preload_libraries。然后重启数据库实例。有关更多信息,请参阅“使用数据库参数组”。

注意

性能详情只能收集 pg_stat_activity 中未被截断的查询的统计数据。默认情况下,PostgreSQL 数据库会截断长度超过 1,024 字节的查询。要增加查询大小,请更改与数据库实例关联的数据库参数组中的 track_activity_query_size 参数。更改此参数后,需要重新启动数据库实例。

PostgreSQL 的每秒摘要统计数据

以下 SQL 摘要统计数据可用于 PostgreSQL 数据库实例。

指标 单位
db.sql_tokenized.stats.calls_per_sec 每秒调用数
db.sql_tokenized.stats.rows_per_sec 每秒行数
db.sql_tokenized.stats.total_time_per_sec 每秒平均活动执行次数 (AAE)
db.sql_tokenized.stats.shared_blks_hit_per_sec 每秒块命中次数
db.sql_tokenized.stats.shared_blks_read_per_sec 每秒块读取次数
db.sql_tokenized.stats.shared_blks_dirtied_per_sec 每秒损坏的块数
db.sql_tokenized.stats.shared_blks_written_per_sec 每秒块写入次数
db.sql_tokenized.stats.local_blks_hit_per_sec 每秒本地块命中次数
db.sql_tokenized.stats.local_blks_read_per_sec 每秒本地块读取次数
db.sql_tokenized.stats.local_blks_dirtied_per_sec 每秒本地块损坏次数
db.sql_tokenized.stats.local_blks_written_per_sec 每秒本地块写入次数
db.sql_tokenized.stats.temp_blks_written_per_sec 每秒临时写入次数
db.sql_tokenized.stats.temp_blks_read_per_sec 每秒临时读取次数
db.sql_tokenized.stats.blk_read_time_per_sec 每秒平均并发读取次数
db.sql_tokenized.stats.blk_write_time_per_sec 每秒平均并发写入次数

PostgreSQL 的每次调用摘要统计数据

以下指标提供了 SQL 语句的每次调用统计数据。

指标 单位
db.sql_tokenized.stats.rows_per_call 每个调用的行数
db.sql_tokenized.stats.avg_latency_per_call 每个调用的平均延迟(以毫秒为单位)
db.sql_tokenized.stats.shared_blks_hit_per_call 每个调用的块命中次数
db.sql_tokenized.stats.shared_blks_read_per_call 每个调用的块读取次数
db.sql_tokenized.stats.shared_blks_written_per_call 每个调用的块写入次数
db.sql_tokenized.stats.shared_blks_dirtied_per_call 每个调用损坏的块数
db.sql_tokenized.stats.local_blks_hit_per_call 每个调用的本地块命中次数
db.sql_tokenized.stats.local_blks_read_per_call 每个调用的本地块读取次数
db.sql_tokenized.stats.local_blks_dirtied_per_call 每个调用的本地块损坏次数
db.sql_tokenized.stats.local_blks_written_per_call 每个调用的本地块写入次数
db.sql_tokenized.stats.temp_blks_written_per_call 每个调用的临时块写入次数
db.sql_tokenized.stats.temp_blks_read_per_call 每个调用的临时块读取次数
db.sql_tokenized.stats.blk_read_time_per_call 每个调用的读取时间(以毫秒为单位)
db.sql_tokenized.stats.blk_write_time_per_call 每个调用的写入时间(以毫秒为单位)

有关这些指标的更多信息,请参阅 PostgreSQL 文档中的 pg_stat_statements

查看 PostgreSQL 的 SQL 统计数据

统计数据可在 Database load(数据库负载)图表的 Top SQL(主要 SQL)选项卡中找到。

要查看 SQL 统计数据

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 请使用性能详情控制面板。

  3. 选择 SQL 选项卡。

    
								查看正在运行的查询的指标
  4. 通过选择图表右上角的齿轮图标来选择要显示的统计数据。

    以下屏幕截图显示 PostgreSQL 的首选项。

    
								用于运行  PostgreSQL 数据库实例查询的指标的首选项