

# Performance Insights 的 SQL 统计数据
<a name="sql-statistics"></a>

*SQL 统计数据*是由 Performance Insights 收集的关于 SQL 查询的性能相关指标。Performance Insights 收集查询运行的每一秒的统计数据，以及每次 SQL 调用的统计数据。SQL 统计数据是所选时间范围内的平均值。

SQL 摘要 是具有给定模式但不一定具有相同文本值的所有查询的组合。摘要用问号替换文本值。例如，`SELECT * FROM emp WHERE lname= ?`。此摘要可能由以下子查询组成：

```
SELECT * FROM emp WHERE lname = 'Sanchez'
SELECT * FROM emp WHERE lname = 'Olagappan'
SELECT * FROM emp WHERE lname = 'Wu'
```

所有引擎都支持摘要查询的 SQL 统计数据。

有关此功能的区域、数据库引擎和实例类支持信息，请参阅[支持性能详情功能的 Amazon RDS 数据库引擎、区域和实例类](USER_PerfInsights.Overview.Engines.md#USER_PerfInsights.Overview.PIfeatureEngnRegSupport)

**Topics**
+ [MariaDB 和 MySQL 的 SQL 统计数据](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.md)
+ [Amazon RDS for Oracle 的 SQL 统计数据](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.md)
+ [Amazon RDS for SQL Server 的 SQL 统计数据](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.md)
+ [RDS PostgreSQL 的 SQL 统计数据](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.md)

# MariaDB 和 MySQL 的 SQL 统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL"></a>

MariaDB 和 MySQL 仅在摘要级别收集 SQL 统计信息。语句级别没有显示任何统计数据。

**Topics**
+ [MariaDB 和 MySQL 的摘要统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.truncation)
+ [MariaDB 和 MySQL 的每秒统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.per-second)
+ [MariaDB 和 MySQL 的每次调用统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.truncation.per-call)
+ [MariaDB 和 MySQL 的主要统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.primary)

## MariaDB 和 MySQL 的摘要统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.truncation"></a>

性能详情从 `events_statements_summary_by_digest` 表中收集 SQL 摘要统计数据。`events_statements_summary_by_digest` 表由您的数据库管理。

此摘要表不提供移出策略。当表已满时，AWS 管理控制台 将显示以下消息：

```
Performance Insights is unable to collect SQL Digest statistics on new queries because the table events_statements_summary_by_digest is full. 
Please truncate events_statements_summary_by_digest table to clear the issue. Check the User Guide for more details.
```

在这种情况下，MariaDB 和 MySQL 不会 跟踪 SQL 查询。为了解决此问题，性能详情会在满足以下两个条件时自动截取摘要表：
+ 表已满。
+ 性能详情会自动管理 Performance Schema。

  对于自动管理，`performance_schema` 参数必须设置为 `0`，**Source (源)** 不应设置为 `user`。如果性能详情没有自动管理 Performance Schema，请参阅 [Amazon RDS for MariaDB 或 Amazon RDS for MySQL 上性能详情的性能架构概述](USER_PerfInsights.EnableMySQL.md)。

在 AWS CLI 中，检查参数值的来源，方法是运行 [describe-db-parameters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-parameters.html) 命令。

## MariaDB 和 MySQL 的每秒统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.per-second"></a>

以下 SQL 统计数据适用于 MariaDB 和 MySQL 数据库实例。


| 指标 | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.count\$1star\$1per\$1sec | 每秒调用数 | 
| db.sql\$1tokenized.stats.sum\$1timer\$1wait\$1per\$1sec | 每秒平均延迟（以毫秒为单位） | 
| db.sql\$1tokenized.stats.sum\$1select\$1full\$1join\$1per\$1sec | 选择每秒完全联接数 | 
| db.sql\$1tokenized.stats.sum\$1select\$1range\$1check\$1per\$1sec | 选择每秒范围检查数 | 
| db.sql\$1tokenized.stats.sum\$1select\$1scan\$1per\$1sec | 选择每秒扫描数 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1merge\$1passes\$1per\$1sec | 对每秒合并传递数进行排序 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1scan\$1per\$1sec | 对每秒对扫描数进行排序 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1range\$1per\$1sec | 对每秒范围数进行排序 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1rows\$1per\$1sec | 对每秒行数进行排序 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1affected\$1per\$1sec | 每秒受影响的行数 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1examined\$1per\$1sec | 每秒检查的行数 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1sent\$1per\$1sec | 每秒发送的行数 | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1disk\$1tables\$1per\$1sec | 每秒创建的临时磁盘表数 | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1tables\$1per\$1sec | 每秒创建的临时表数 | 
| db.sql\$1tokenized.stats.sum\$1lock\$1time\$1per\$1sec | 每秒锁定时间（以毫秒为单位） | 

## MariaDB 和 MySQL 的每次调用统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.truncation.per-call"></a>

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


| 指标 | 单位 | 
| --- | --- | 
| db.sql\$1tokenized.stats.sum\$1timer\$1wait\$1per\$1call | 每个调用的平均延迟（以毫秒为单位）  | 
| db.sql\$1tokenized.stats.sum\$1select\$1full\$1join\$1per\$1call | 选择每次调用完全联接数 | 
| db.sql\$1tokenized.stats.sum\$1select\$1range\$1check\$1per\$1call | 选择每次调用范围检查数 | 
| db.sql\$1tokenized.stats.sum\$1select\$1scan\$1per\$1call | 选择每次调用扫描数 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1merge\$1passes\$1per\$1call | 对每次调用合并传递数进行排序 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1scan\$1per\$1call | 对每次调用扫描数进行排序 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1range\$1per\$1call | 对每次调用范围数进行排序 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1rows\$1per\$1call | 对每次调用行数进行排序 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1affected\$1per\$1call | 每次调用受影响的行数 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1examined\$1per\$1call | 每次调用检查的行数 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1sent\$1per\$1call | 每次调用发送的行数 | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1disk\$1tables\$1per\$1call | 每次调用创建的临时磁盘表数 | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1tables\$1per\$1call | 每次调用创建的临时表数 | 
| db.sql\$1tokenized.stats.sum\$1lock\$1time\$1per\$1call | 每个调用的锁定时间（以毫秒为单位） | 

## MariaDB 和 MySQL 的主要统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.primary"></a>

以下 SQL 统计数据适用于 MariaDB 和 MySQL 数据库实例。


| 指标 | 单位 | 
| --- | --- | 
| db.sql\$1tokenized.stats.count\$1star | Calls | 
| db.sql\$1tokenized.stats.sum\$1timer\$1wait | 等待时间（以毫秒为单位） | 
| db.sql\$1tokenized.stats.sum\$1select\$1full\$1join | 选择完全联接 | 
| db.sql\$1tokenized.stats.sum\$1select\$1range\$1check | 选择范围检查 | 
| db.sql\$1tokenized.stats.sum\$1select\$1scan | 选择扫描 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1merge\$1passes | 对合并传递进行排序 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1scan | 对扫描进行排序 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1range | 对范围进行排序 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1rows | 排序行 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1affected | 受影响的行数 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1examined | 检查的行数 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1sent | 发送的行数 | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1disk\$1tables | 创建的临时磁盘表数 | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1tables | 创建的临时表数 | 
| db.sql\$1tokenized.stats.sum\$1lock\$1time | 锁定时间（以毫秒为单位） | 

# Amazon RDS for Oracle 的 SQL 统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle"></a>

Amazon RDS for Oracle 收集语句和摘要级别的 SQL 统计信息。在语句级别，ID 列表示 `V$SQL.SQL_ID` 的值。在摘要级别，ID 列显示 `V$SQL.FORCE_MATCHING_SIGNATURE` 的值。

如果在摘要级别，ID 为 `0`，则 Oracle 数据库已确定此语句不适合重复使用。在这种情况下，子 SQL 语句可能属于不同的摘要。不过，这些语句都将分组在第一个收集到的 SQL 语句的 `digest_text` 项下。

**Topics**
+ [Oracle 的每秒统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.per-second)
+ [Oracle 的每次调用统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.per-call)
+ [Oracle 的主要统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.primary)

## Oracle 的每秒统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.per-second"></a>

以下指标提供了 Oracle SQL 查询的每秒统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql.stats.executions\$1per\$1sec | 每秒执行次数 | 
| db.sql.stats.elapsed\$1time\$1per\$1sec | 平均活动执行次数 (AAE) | 
| db.sql.stats.rows\$1processed\$1per\$1sec | 每秒处理的行数 | 
| db.sql.stats.buffer\$1gets\$1per\$1sec | 每秒缓冲区获取数 | 
| db.sql.stats.physical\$1read\$1requests\$1per\$1sec | 每秒物理读取次数 | 
| db.sql.stats.physical\$1write\$1requests\$1per\$1sec | 每秒物理写入次数 | 
| db.sql.stats.total\$1sharable\$1mem\$1per\$1sec | 每秒总可共享内存（以字节为单位）  | 
| db.sql.stats.cpu\$1time\$1per\$1sec | 每秒 CPU 时间（以毫秒为单位） | 

以下指标提供了 Oracle SQL 摘要查询的每秒统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql\$1tokenized.stats.executions\$1per\$1sec | 每秒执行次数 | 
| db.sql\$1tokenized.stats.elapsed\$1time\$1per\$1sec | 平均活动执行次数 (AAE) | 
| db.sql\$1tokenized.stats.rows\$1processed\$1per\$1sec | 每秒处理的行数 | 
| db.sql\$1tokenized.stats.buffer\$1gets\$1per\$1sec | 每秒缓冲区获取数 | 
| db.sql\$1tokenized.stats.physical\$1read\$1requests\$1per\$1sec | 每秒物理读取次数 | 
| db.sql\$1tokenized.stats.physical\$1write\$1requests\$1per\$1sec | 每秒物理写入次数 | 
| db.sql\$1tokenized.stats.total\$1sharable\$1mem\$1per\$1sec | 每秒总可共享内存（以字节为单位）  | 
| db.sql\$1tokenized.stats.cpu\$1time\$1per\$1sec | 每秒 CPU 时间（以毫秒为单位） | 

## Oracle 的每次调用统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.per-call"></a>

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


| 指标 | 单位 | 
| --- | --- | 
| db.sql.stats.elapsed\$1time\$1per\$1exec | 每次执行所用的时间（以毫秒为单位）  | 
| db.sql.stats.rows\$1processed\$1per\$1exec | 每次执行处理的行数 | 
| db.sql.stats.buffer\$1gets\$1per\$1exec | 每次执行的缓冲区获取数 | 
| db.sql.stats.physical\$1read\$1requests\$1per\$1exec | 每次执行的物理读取次数 | 
| db.sql.stats.physical\$1write\$1requests\$1per\$1exec | 每次执行的物理写入次数 | 
| db.sql.stats.total\$1sharable\$1mem\$1per\$1exec | 每次执行的总可共享内存（以字节为单位） | 
| db.sql.stats.cpu\$1time\$1per\$1exec | 每次执行的 CPU 时间（以毫秒为单位） | 

以下指标提供了 Oracle SQL 摘要查询的每次调用统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql\$1tokenized.stats.elapsed\$1time\$1per\$1exec | 每次执行所用的时间（以毫秒为单位）  | 
| db.sql\$1tokenized.stats.rows\$1processed\$1per\$1exec | 每次执行处理的行数 | 
| db.sql\$1tokenized.stats.buffer\$1gets\$1per\$1exec | 每次执行的缓冲区获取数 | 
| db.sql\$1tokenized.stats.physical\$1read\$1requests\$1per\$1exec | 每次执行的物理读取次数 | 
| db.sql\$1tokenized.stats.physical\$1write\$1requests\$1per\$1exec | 每次执行的物理写入次数 | 
| db.sql\$1tokenized.stats.total\$1sharable\$1mem\$1per\$1exec | 每次执行的总可共享内存（以字节为单位） | 
| db.sql\$1tokenized.stats.cpu\$1time\$1per\$1exec | 每次执行的 CPU 时间（以毫秒为单位） | 

## Oracle 的主要统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.primary"></a>

以下指标提供了 Oracle SQL 查询的主要统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql.stats.executions | 执行次数  | 
| db.sql.stats.elapsed\$1time | 经过的时间（以毫秒为单位） | 
| db.sql.stats.rows\$1processed | 处理的行数  | 
| db.sql.stats.buffer\$1gets | 缓冲区获得次数  | 
| db.sql.stats.physical\$1read\$1requests | 物理读取  | 
| db.sql.stats.physical\$1write\$1requests | 物理写入次数  | 
| db.sql.stats.total\$1sharable\$1mem | 总可共享内存（以字节为单位）  | 
| db.sql.stats.cpu\$1time | CPU 时间（以毫秒为单位） | 

以下指标提供了 Oracle SQL 摘要查询的主要统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql\$1tokenized.stats.executions | 执行次数 | 
| db.sql\$1tokenized.stats.elapsed\$1time | 经过的时间（以毫秒为单位） | 
| db.sql\$1tokenized.stats.rows\$1processed | 处理的行数 | 
| db.sql\$1tokenized.stats.buffer\$1gets | 缓冲区获得次数 | 
| db.sql\$1tokenized.stats.physical\$1read\$1requests | 物理读取 | 
| db.sql\$1tokenized.stats.physical\$1write\$1requests | 物理写入次数 | 
| db.sql\$1tokenized.stats.total\$1sharable\$1mem | 总可共享内存（以字节为单位）  | 
| db.sql\$1tokenized.stats.cpu\$1time | CPU 时间（以毫秒为单位） | 

# Amazon RDS for SQL Server 的 SQL 统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer"></a>

Amazon RDS for SQL Server 收集语句和摘要级别的 SQL 统计信息。在语句级别，ID 列表示 `sql_handle` 的值。在摘要级别，ID 列显示 `query_hash` 的值。

对于一些语句，SQL Server 会为 `query_hash` 返回 NULL 值。例如，ALTER INDEX、CHECKPOINT、UPDATE STATISTICS、COMMIT TRANSACTION、FETCH NEXT FROM Cursor 和一些 INSERT 语句、SELECT @<variable>、条件语句和可执行存储过程。在这种情况下，`sql_handle` 值显示为该语句的摘要级别的 ID。

**Topics**
+ [SQL Server 的每秒统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.per-second)
+ [SQL Server 的每次调用统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.per-call)
+ [SQL Server 的主要统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.primary)

## SQL Server 的每秒统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.per-second"></a>

以下指标提供了 SQL Server SQL 查询的每秒统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql.stats.execution\$1count\$1per\$1sec | 每秒执行次数 | 
| db.sql.stats.total\$1elapsed\$1time\$1per\$1sec | 每秒总用时 | 
| db.sql.stats.total\$1rows\$1per\$1sec | 每秒处理的总行数 | 
| db.sql.stats.total\$1logical\$1reads\$1per\$1sec | 每秒逻辑读取总数 | 
| db.sql.stats.total\$1logical\$1writes\$1per\$1sec | 每秒逻辑写入总数 | 
| db.sql.stats.total\$1physical\$1reads\$1per\$1sec | 每秒物理读取总数 | 
| db.sql.stats.total\$1worker\$1time\$1per\$1sec | CPU 总时间（以毫秒为单位） | 

以下指标提供了 SQL Server SQL 摘要查询的每秒统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql\$1tokenized.stats.execution\$1count\$1per\$1sec | 每秒执行次数 | 
| db.sql\$1tokenized.stats.total\$1elapsed\$1time\$1per\$1sec | 每秒总用时 | 
| db.sql\$1tokenized.stats.total\$1rows\$1per\$1sec | 每秒处理的总行数 | 
| db.sql\$1tokenized.stats.total\$1logical\$1reads\$1per\$1sec | 每秒逻辑读取总数 | 
| db.sql\$1tokenized.stats.total\$1logical\$1writes\$1per\$1sec | 每秒逻辑写入总数 | 
| db.sql\$1tokenized.stats.total\$1physical\$1reads\$1per\$1sec | 每秒物理读取总数 | 
| db.sql\$1tokenized.stats.total\$1worker\$1time\$1per\$1sec | CPU 总时间（以毫秒为单位） | 

## SQL Server 的每次调用统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.per-call"></a>

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


| 指标 | 单位 | 
| --- | --- | 
| db.sql.stats.total\$1elapsed\$1time\$1per\$1call | 每次执行的总用时（以毫秒为单位） | 
| db.sql.stats.total\$1rows\$1per\$1call | 每次执行处理的总行数 | 
| db.sql.stats.total\$1logical\$1reads\$1per\$1call | 每次执行的逻辑读取总数 | 
| db.sql.stats.total\$1logical\$1writes\$1per\$1call | 每次执行的逻辑写入总数 | 
| db.sql.stats.total\$1physical\$1reads\$1per\$1call | 每次执行的物理读取总数 | 
| db.sql.stats.total\$1worker\$1time\$1per\$1call | 每次执行的总 CPU 时间（以毫秒为单位） | 

以下指标提供了 SQL Server SQL 摘要查询的每次调用统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql\$1tokenized.stats.total\$1elapsed\$1time\$1per\$1call | 每次执行的总用时 | 
| db.sql\$1tokenized.stats.total\$1rows\$1per\$1call | 每次执行处理的总行数 | 
| db.sql\$1tokenized.stats.total\$1logical\$1reads\$1per\$1call | 每次执行的逻辑读取总数 | 
| db.sql\$1tokenized.stats.total\$1logical\$1writes\$1per\$1call | 每次执行的逻辑写入总数 | 
| db.sql\$1tokenized.stats.total\$1physical\$1reads\$1per\$1call | 每次执行的物理读取总数  | 
| db.sql\$1tokenized.stats.total\$1worker\$1time\$1per\$1call | 每次执行的总 CPU 时间（以毫秒为单位） | 

## SQL Server 的主要统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.primary"></a>

以下指标提供了 SQL Server SQL 查询的主要统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql.stats.execution\$1count | 执行次数 | 
| db.sql.stats.total\$1elapsed\$1time | 经过的总时间（以毫秒为单位） | 
| db.sql.stats.total\$1rows | 处理的总行数 | 
| db.sql.stats.total\$1logical\$1reads | 逻辑读取总次数 | 
| db.sql.stats.total\$1logical\$1writes | 逻辑写入总次数 | 
| db.sql.stats.total\$1physical\$1reads | 物理读取总次数 | 
| db.sql.stats.total\$1worker\$1time | CPU 总时间（以毫秒为单位） | 

以下指标提供了 SQL Server SQL 摘要查询的主要统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql\$1tokenized.stats.execution\$1count | 执行次数 | 
| db.sql\$1tokenized.stats.total\$1elapsed\$1time | 经过的总时间（以毫秒为单位） | 
| db.sql\$1tokenized.stats.total\$1rows | 处理的总行数 | 
| db.sql\$1tokenized.stats.total\$1logical\$1reads | 逻辑读取总次数 | 
| db.sql\$1tokenized.stats.total\$1logical\$1writes | 逻辑写入总次数 | 
| db.sql\$1tokenized.stats.total\$1physical\$1reads | 物理读取总次数 | 
| db.sql\$1tokenized.stats.total\$1worker\$1time | CPU 总时间（以毫秒为单位） | 

# RDS PostgreSQL 的 SQL 统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL"></a>

对于每个 SQL 调用和查询运行的每一秒，性能详情都会收集 SQL 统计数据。RDS for PostgreSQL 仅在摘要级别收集 SQL 统计数据。语句级别不显示任何统计数据。

接下来，您可以了解有关 RDS for PostgreSQL 的摘要级别统计数据的信息。

**Topics**
+ [RDS PostgreSQL 的摘要统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.digest)
+ [RDS PostgreSQL 的每秒摘要统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.per-second)
+ [RDS PostgreSQL 的每次调用摘要统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.per-call)
+ [RDS PostgreSQL 的主要统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.primary)

## RDS PostgreSQL 的摘要统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.digest"></a>

要查看 SQL 摘要统计数据，RDS PostgreSQL 必须加载 `pg_stat_statements` 库。对于与 PostgreSQL 11 或更高版本兼容的 PostgreSQL 数据库实例，数据库默认加载此库。对于与 PostgreSQL 10 或更低版本兼容的 PostgreSQL 数据库实例，请手动启用此库。要手动启用该库，请在与数据库实例关联的数据库参数组中的 `pg_stat_statements` 中添加 `shared_preload_libraries`。然后重启数据库实例。有关更多信息，请参阅“[Amazon RDS 的参数组](USER_WorkingWithParamGroups.md)”。

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

## RDS PostgreSQL 的每秒摘要统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.per-second"></a>

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


| 指标 | 单位 | 
| --- | --- | 
| db.sql\$1tokenized.stats.calls\$1per\$1sec | 每秒调用数 | 
| db.sql\$1tokenized.stats.rows\$1per\$1sec | 每秒行数 | 
| db.sql\$1tokenized.stats.total\$1time\$1per\$1sec | 每秒平均活动执行次数 (AAE) | 
| db.sql\$1tokenized.stats.shared\$1blks\$1hit\$1per\$1sec | 每秒块命中次数 | 
| db.sql\$1tokenized.stats.shared\$1blks\$1read\$1per\$1sec | 每秒块读取次数 | 
| db.sql\$1tokenized.stats.shared\$1blks\$1dirtied\$1per\$1sec | 每秒损坏的块数 | 
| db.sql\$1tokenized.stats.shared\$1blks\$1written\$1per\$1sec | 每秒块写入次数 | 
| db.sql\$1tokenized.stats.local\$1blks\$1hit\$1per\$1sec | 每秒本地块命中次数 | 
| db.sql\$1tokenized.stats.local\$1blks\$1read\$1per\$1sec | 每秒本地块读取次数 | 
| db.sql\$1tokenized.stats.local\$1blks\$1dirtied\$1per\$1sec | 每秒弄脏的本地块数 | 
| db.sql\$1tokenized.stats.local\$1blks\$1written\$1per\$1sec | 每秒本地块写入次数 | 
| db.sql\$1tokenized.stats.temp\$1blks\$1written\$1per\$1sec | 每秒临时写入次数 | 
| db.sql\$1tokenized.stats.temp\$1blks\$1read\$1per\$1sec | 每秒临时读取次数 | 
| db.sql\$1tokenized.stats.blk\$1read\$1time\$1per\$1sec | 每秒平均并发读取次数 | 
| db.sql\$1tokenized.stats.blk\$1write\$1time\$1per\$1sec | 每秒平均并发写入次数 | 

## RDS PostgreSQL 的每次调用摘要统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.per-call"></a>

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


| 指标 | 单位 | 
| --- | --- | 
| db.sql\$1tokenized.stats.rows\$1per\$1call | 每个调用的行数 | 
| db.sql\$1tokenized.stats.avg\$1latency\$1per\$1call | 每个调用的平均延迟（以毫秒为单位） | 
| db.sql\$1tokenized.stats.shared\$1blks\$1hit\$1per\$1call | 每个调用的块命中次数 | 
| db.sql\$1tokenized.stats.shared\$1blks\$1read\$1per\$1call | 每个调用的块读取次数 | 
| db.sql\$1tokenized.stats.shared\$1blks\$1written\$1per\$1call | 每个调用的块写入次数 | 
| db.sql\$1tokenized.stats.shared\$1blks\$1dirtied\$1per\$1call | 每个调用损坏的块数 | 
| db.sql\$1tokenized.stats.local\$1blks\$1hit\$1per\$1call | 每个调用的本地块命中次数 | 
| db.sql\$1tokenized.stats.local\$1blks\$1read\$1per\$1call | 每个调用的本地块读取次数 | 
| db.sql\$1tokenized.stats.local\$1blks\$1dirtied\$1per\$1call | 每个调用弄脏的本地块数 | 
| db.sql\$1tokenized.stats.local\$1blks\$1written\$1per\$1call | 每个调用的本地块写入次数 | 
| db.sql\$1tokenized.stats.temp\$1blks\$1written\$1per\$1call | 每个调用的临时块写入次数 | 
| db.sql\$1tokenized.stats.temp\$1blks\$1read\$1per\$1call | 每个调用的临时块读取次数 | 
| db.sql\$1tokenized.stats.blk\$1read\$1time\$1per\$1call | 每个调用的读取时间（以毫秒为单位） | 
| db.sql\$1tokenized.stats.blk\$1write\$1time\$1per\$1call | 每个调用的写入时间（以毫秒为单位） | 

## RDS PostgreSQL 的主要统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.primary"></a>

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


| 指标 | 单位 | 
| --- | --- | 
| db.sql\$1tokenized.stats.calls | Calls  | 
| db.sql\$1tokenized.stats.rows | 行  | 
| db.sql\$1tokenized.stats.total\$1time | 总时间（以毫秒为单位） | 
| db.sql\$1tokenized.stats.shared\$1blks\$1hit | 块命中次数  | 
| db.sql\$1tokenized.stats.shared\$1blks\$1read | 块读取次数  | 
| db.sql\$1tokenized.stats.shared\$1blks\$1dirtied | 弄脏的块数  | 
| db.sql\$1tokenized.stats.shared\$1blks\$1written | 块写入次数  | 
| db.sql\$1tokenized.stats.local\$1blks\$1hit | 本地块命中次数  | 
| db.sql\$1tokenized.stats.local\$1blks\$1read | 本地块读取次数  | 
| db.sql\$1tokenized.stats.local\$1blks\$1dirtied | 弄脏的本地块数 | 
| db.sql\$1tokenized.stats.local\$1blks\$1written | 本地块写入次数  | 
| db.sql\$1tokenized.stats.temp\$1blks\$1written | 临时写入次数  | 
| db.sql\$1tokenized.stats.temp\$1blks\$1read | 临时读取次数  | 
| db.sql\$1tokenized.stats.blk\$1read\$1time | 平均并发读取次数（以毫秒为单位） | 
| db.sql\$1tokenized.stats.blk\$1write\$1time | 平均并发写入次数（以毫秒为单位） | 

有关这些指标的更多信息，请参阅 PostgreSQL 文档中的 [pg\$1stat\$1statements](https://www.postgresql.org/docs/current/pgstatstatements.html)。