

# 在 Amazon RDS 上使用性能详情监控数据库负载
<a name="USER_PerfInsights"></a>

**重要**  
 AWS 已宣布性能详情功能的生命周期终止日期为：2026 年 6 月 30 日。在此日期之后，Amazon RDS 将不再支持性能详情控制台体验、灵活的保留期（1-24 个月）及其关联定价。性能详情 API 将继续存在，定价不变。性能详情 API 的费用将与 CloudWatch 数据库洞察的费用一起显示在您的 AWS 账单中。  
 建议您在 2026 年 6 月 30 日之前，将使用性能详情付费套餐的所有数据库实例升级到数据库洞察的高级模式。有关升级到数据库洞察的高级模式的信息，请参阅[开启适用于 Amazon RDS 的数据库洞察的高级模式](USER_DatabaseInsights.TurningOnAdvanced.md)。  
 如果您不采取任何行动，则使用性能详情的数据库实例将默认为使用数据库洞察的标准模式。在数据库洞察的标准模式下，您可能会在 7 天后无法访问性能数据历史记录，并且可能无法在 Amazon RDS 控制台中使用执行计划和按需分析功能。2026 年 6 月 30 日之后，只有数据库洞察的高级模式将支持执行计划和按需分析。  
 借助 CloudWatch 数据库洞察，您可以监控数据库实例集的数据库负载，并对性能进行大规模分析和故障排除。有关数据库洞察的更多信息，请参阅[使用 CloudWatch 数据库洞察监控 Amazon RDS 数据库](USER_DatabaseInsights.md)。有关定价信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

Performance Insights 在现有 Amazon RDS 监控功能的基础上进行了扩展，以便展示并帮助您分析数据库性能。利用 Performance Insights 控制面板，您可以可视化 Amazon RDS 数据库实例负载上的数据库负载，并按等待状态、SQL 语句、主机或用户来筛选负载。有关将 Performance Insights 与 Amazon DocumentDB 结合使用的信息，请参阅 *[Amazon DocumentDB 开发人员指南](https://docs.aws.amazon.com/documentdb/latest/developerguide/performance-insights.html)*。

**Topics**
+ [Amazon RDS 上的 Performance Insights 概述](USER_PerfInsights.Overview.md)
+ [为 Amazon RDS 打开和关闭性能详情](USER_PerfInsights.Enabling.md)
+ [Amazon RDS for MariaDB 或 Amazon RDS for MySQL 上性能详情的性能架构概述](USER_PerfInsights.EnableMySQL.md)
+ [为 Performance Insights 配置访问策略](USER_PerfInsights.access-control.md)
+ [使用 Performance Insights 控制面板分析指标](USER_PerfInsights.UsingDashboard.md)
+ [查看性能详情主动建议](USER_PerfInsights.InsightsRecommendationViewDetails.md)
+ [使用 Performance Insights API for Amazon RDS 检索指标](USER_PerfInsights.API.md)
+ [使用 AWS CloudTrail 记录 Performance Insights 调用](USER_PerfInsights.CloudTrail.md)
+ [性能详情 API 和接口 VPC 端点（AWS PrivateLink）](pi-vpc-interface-endpoints.md)

# Amazon RDS 上的 Performance Insights 概述
<a name="USER_PerfInsights.Overview"></a>

**重要**  
 AWS 已宣布性能详情功能的生命周期终止日期为：2026 年 6 月 30 日。在此日期之后，Amazon RDS 将不再支持性能详情控制台体验、灵活的保留期（1-24 个月）及其关联定价。性能详情 API 将继续存在，定价不变。性能详情 API 的费用将与 CloudWatch 数据库洞察的费用一起显示在您的 AWS 账单中。  
 建议您在 2026 年 6 月 30 日之前，将使用性能详情付费套餐的所有数据库实例升级到数据库洞察的高级模式。有关升级到数据库洞察的高级模式的信息，请参阅[开启适用于 Amazon RDS 的数据库洞察的高级模式](USER_DatabaseInsights.TurningOnAdvanced.md)。  
 如果您不采取任何行动，则使用性能详情的数据库实例将默认为使用数据库洞察的标准模式。在数据库洞察的标准模式下，您可能会在 7 天后无法访问性能数据历史记录，并且可能无法在 Amazon RDS 控制台中使用执行计划和按需分析功能。2026 年 6 月 30 日之后，只有数据库洞察的高级模式将支持执行计划和按需分析。  
 借助 CloudWatch 数据库洞察，您可以监控数据库实例集的数据库负载，并对性能进行大规模分析和故障排除。有关数据库洞察的更多信息，请参阅[使用 CloudWatch 数据库洞察监控 Amazon RDS 数据库](USER_DatabaseInsights.md)。有关定价信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

默认情况下，RDS 在控制台创建向导中为所有 Amazon RDS 引擎启用 Performance Insights。如果一个数据库实例中有多个数据库，则 Performance Insights 会聚合性能数据。

可在以下视频中大致了解 Amazon RDS 的 Performance Insights。

[![AWS Videos](http://img.youtube.com/vi/yOeWcPBT458/0.jpg)](http://www.youtube.com/watch?v=yOeWcPBT458)


**重要**  
以下主题说明如何将 Amazon RDS Performance Insights 与非 Aurora 数据库引擎结合使用。有关将 Amazon RDS Performance Insights 与 Amazon Aurora 结合使用的信息，请参阅《Amazon Aurora 用户指南》**中的[使用 Amazon RDS Performance Insights](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html)。

**Topics**
+ [数据库负载](USER_PerfInsights.Overview.ActiveSessions.md)
+ [最大 CPU](USER_PerfInsights.Overview.MaxCPU.md)
+ [支持性能详情的 Amazon RDS 数据库引擎、区域和实例类](USER_PerfInsights.Overview.Engines.md)
+ [性能详情的定价和数据留存](USER_PerfInsights.Overview.cost.md)

# 数据库负载
<a name="USER_PerfInsights.Overview.ActiveSessions"></a>

*数据库负载（DB 负载）*衡量数据库中的会话活动级别。`DBLoad` 是 Performance Insights 中的关键指标，Performance Insights 每秒都会收集数据库负载。

**Topics**
+ [活动的会话](#USER_PerfInsights.Overview.ActiveSessions.active-sessions)
+ [平均活动会话数](#USER_PerfInsights.Overview.ActiveSessions.AAS)
+ [平均活动执行数](#USER_PerfInsights.Overview.ActiveSessions.AAE)
+ [尺寸](#USER_PerfInsights.Overview.ActiveSessions.dimensions)

## 活动的会话
<a name="USER_PerfInsights.Overview.ActiveSessions.active-sessions"></a>

*数据库会话*表示的是应用程序与关系数据库的对话。活动的会话 是已将作业提交到数据库引擎并且正在等待响应的连接。

当会话在 CPU 上运行或等待资源变为可用以便继续执行时，该会话即处于活动状态。例如，活动的会话可能会等待页面（或块）读入内存中，然后占用 CPU 以从页面读取数据。

## 平均活动会话数
<a name="USER_PerfInsights.Overview.ActiveSessions.AAS"></a>

*平均活动会话数（AAS）*是 Performance Insights 中 `DBLoad` 指标的单位。它衡量数据库上有多少个会话同时处于活动状态。

Performance Insights 每秒都会对并行运行查询的会话数进行采样。对于每个活动的会话，Performance Insights 都会收集以下数据：
+ SQL 语句
+ 会话状态（正在 CPU 上运行或正在等待）
+ Host
+ 运行 SQL 的用户

Performance Insights 通过以下方式计算 AAS：对于特定时间段内，将会话总数除以样本数。例如，下表显示了正在运行的查询的 5 个连续样本，其间隔为 1 秒。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.ActiveSessions.html)

在前面的示例中，该时间间隔的数据库负载为 2 AAS。这一测量结果表明，在采集 5 个样本的时间间隔内，在任何给定时间，平均有 2 个会话处于活动状态。

## 平均活动执行数
<a name="USER_PerfInsights.Overview.ActiveSessions.AAE"></a>

每秒的平均活动执行数 (AAE) 与平均活动会话数相关。为了计算平均活动执行数，Performance Insights 使用查询的总执行时间除以时间间隔。下表显示了上表中同一查询的平均活动执行数计算。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.ActiveSessions.html)

在大多数情况下，查询的平均活动会话数和平均活动执行数大致相同。但是，由于计算所用的数据是不同的数据源，因此计算通常略有不同。

## 尺寸
<a name="USER_PerfInsights.Overview.ActiveSessions.dimensions"></a>

`db.load` 指标不同于其他时间序列指标，因为您可以将它分为称为维度的子组件。您可以将维度视为 `DBLoad` 指标的不同特征的“切片依据”类别。

诊断性能问题时，以下维度通常最有用：

**Topics**
+ [等待事件](#USER_PerfInsights.Overview.ActiveSessions.waits)
+ [主要 SQL](#USER_PerfInsights.Overview.ActiveSessions.top-sql)
+ [计划](#USER_PerfInsights.Overview.ActiveSessions.plans)

有关 Amazon RDS 引擎维度的完整列表，请参阅 [按维度切片的数据库负载](USER_PerfInsights.UsingDashboard.Components.md#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.dims)。

### 等待事件
<a name="USER_PerfInsights.Overview.ActiveSessions.waits"></a>

*等待事件* 会导致 SQL 语句等待特定事件发生，然后才能继续运行。等待事件是数据库负载的一个重要维度（或称类别），因为它们指示了工作受阻的位置。

每个活动的会话要么会在 CPU 上运行，要么仍在等待。例如，在搜索内存寻找缓冲区、执行计算或运行过程代码时，会话都会占用 CPU。当会话不占用 CPU 时，它们可能正在等待内存缓冲区变为空闲、等待要读取的数据文件或等待将要写入的日志。会话等待资源的时间越长，它在 CPU 上运行的时间就越少。

当您优化数据库时，经常尝试找出会话正在等待的资源。例如，两三个等待事件可能会占据数据库负载的 90％。这一测量结果表明，平均而言，活动会话花费了大部分时间用于等待少量资源。如果您能找出导致这些等待的原因，就可以尝试提出解决方案了。

等待事件因数据库引擎而异：
+ 有关所有 MariaDB 和 MySQL 等待事件的信息，请参阅 MySQL 文档中的[等待事件摘要表](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-wait-summary-tables.html)。
+ 有关所有 PostgreSQL 等待事件的信息，请参阅 PostgreSQL 文档中的[统计数据收集器 > 等待事件表](https://www.postgresql.org/docs/current/monitoring-stats.html#WAIT-EVENT-TABLE)。
+ 有关所有 Oracle 等待事件的信息，请参阅 Oracle 文档中的[等待事件说明](https://docs.oracle.com/database/121/REFRN/GUID-2FDDFAA4-24D0-4B80-A157-A907AF5C68E2.htm#REFRN-GUID-2FDDFAA4-24D0-4B80-A157-A907AF5C68E2)。
+ 有关所有 SQL Server 等待事件的信息，请参阅 SQL Server 文档中的[等待类型](https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-os-wait-stats-transact-sql?view=sql-server-2017#WaitTypes)。

**注意**  
对于 Oracle，后台进程有时在没有关联的 SQL 语句的情况下工作。在这些情况下，Performance Insights 报告以冒号连接的后台进程类型以及与该后台进程关联的等待类。后台进程类型包括 `LGWR`、`ARC0`、`PMON` 等。  
例如，在存档程序执行 I/O 时，它的 Performance Insights 报告类似于 `ARC1:System I/O`。有时，还会缺少后台进程类型，而 Performance Insights 仅报告等待类，例如 `:System I/O`。

### 主要 SQL
<a name="USER_PerfInsights.Overview.ActiveSessions.top-sql"></a>

等待事件显示运行中的瓶颈，而主要 SQL 则显示哪些查询对数据库负载的影响最大。例如，当前可能正在数据库上运行着许多查询，但某一个查询可能会占用 99% 的数据库负载。在这种情况下，高负载可能表示查询存在问题。

默认情况下，Performance Insights 控制台会显示导致数据库负载的主要 SQL 查询。控制台还显示每个语句的相关统计信息。要诊断特定语句的性能问题，可以检查其执行计划。

### 计划
<a name="USER_PerfInsights.Overview.ActiveSessions.plans"></a>

*执行计划*，也简称为*计划*，是访问数据的一系列步骤。例如，连接表 `t1` 和 `t2` 的计划可能会循环访问 `t1` 中的所有行，并将每一行与 `t2` 中的行进行比较。在关系数据库中，*优化程序*是确定 SQL 查询最有效计划的内置代码。

对于数据库实例，Performance Insights 会自动收集执行计划。要诊断 SQL 性能问题，请检查为高资源 SQL 查询捕获的计划。这些计划会显示数据库如何解析和运行查询。

要了解如何使用计划分析数据库负载，请参阅：
+ Oracle：[使用 Amazon RDS 的性能详情控制面板分析 Oracle 执行计划](USER_PerfInsights.UsingDashboard.AccessPlans.md)
+ SQL Server：[使用 Amazon RDS 的性能详情控制面板分析 SQL Server 执行计划](USER_PerfInsights.UsingDashboard.AccessPlansSqlServer.md)

#### 计划捕获
<a name="USER_PerfInsights.Overview.ActiveSessions.plans.capture"></a>

Performance Insights 每五分钟就会识别资源密集度最高的查询并捕获其计划。因此，无需手动收集和管理大量计划。相反，您可以使用 **Top SQL**（主要 SQL）选项卡重点关注问题最严重的查询计划。

**注意**  
Performance Insights 不会捕获文本超过最大可收集查询文本限制的查询计划。有关更多信息，请参阅 [在 Performance Insights 控制面板中访问更多 SQL 文本](USER_PerfInsights.UsingDashboard.SQLTextSize.md)。

执行计划的保留期与 Performance Insights 数据的保留期相同。免费套餐中的保留设置为 **Default (7 days)** [原定设置（7 天）]。要将性能数据保留更长时间，请指定 1–24 个月。有关保留期的更多信息，请参阅[性能详情的定价和数据留存](USER_PerfInsights.Overview.cost.md)。

#### 摘要查询
<a name="USER_PerfInsights.Overview.ActiveSessions.plans.digest"></a>

**Top SQL**（主要 SQL）选项卡默认显示摘要查询。摘要查询本身没有计划，但所有使用文本值的查询都有计划。例如，摘要查询可能包括文本 `WHERE `email`=?`。摘要可能包含两个查询，一个带有文本 `WHERE email=user1@example.com`，另一个带有 `WHERE email=user2@example.com`。每个文本查询都可能包括多个计划。

如果选择摘要查询，控制台将显示所选摘要的子语句的所有计划。因此，无需浏览所有子语句即可查看计划。计划可能不会显示在前 10 个子语句的列表中。控制台会显示已收集计划的所有子查询计划，无论查询是否在前 10 列表中。

# 最大 CPU
<a name="USER_PerfInsights.Overview.MaxCPU"></a>

在控制面板中，**数据库负载**图表会收集、聚合和显示会话信息。要查看活动会话是否超过最大 CPU，请查看它们与**最大 vCPU** 线的关系。Performance Insights 根据数据库实例的 vCPU（虚拟 CPU）内核数，来决定**最大 vCPU** 值。

一次只能在 vCPU 上运行一个进程。如果进程数超过 vCPU 的数量，则进程开始排队。当排队增加时，数据库性能就会降低。如果数据库负载经常高于**最大 vCPU** 线并且主要等待状态为 CPU，则表示 CPU 过载。在这种情况下，您可能需要限制与实例的连接数，优化具有高 CPU 负载的任何 SQL 查询，或考虑使用更大的实例类。如果始终有大量实例处于任何等待状态，则表示可能存在要解决的瓶颈或资源争用问题。即使数据库负载未越过**最大 vCPU** 线，也可能会出现此问题。

# 支持性能详情的 Amazon RDS 数据库引擎、区域和实例类
<a name="USER_PerfInsights.Overview.Engines"></a>

**重要**  
 AWS 已宣布性能详情功能的生命周期终止日期为：2026 年 6 月 30 日。在此日期之后，Amazon RDS 将不再支持性能详情控制台体验、灵活的保留期（1-24 个月）及其关联定价。性能详情 API 将继续存在，定价不变。性能详情 API 的费用将与 CloudWatch 数据库洞察的费用一起显示在您的 AWS 账单中。  
 建议您在 2026 年 6 月 30 日之前，将使用性能详情付费套餐的所有数据库实例升级到数据库洞察的高级模式。有关升级到数据库洞察的高级模式的信息，请参阅[开启适用于 Amazon RDS 的数据库洞察的高级模式](USER_DatabaseInsights.TurningOnAdvanced.md)。  
 如果您不采取任何行动，则使用性能详情的数据库实例将默认为使用数据库洞察的标准模式。在数据库洞察的标准模式下，您可能会在 7 天后无法访问性能数据历史记录，并且可能无法在 Amazon RDS 控制台中使用执行计划和按需分析功能。2026 年 6 月 30 日之后，只有数据库洞察的高级模式将支持执行计划和按需分析。  
 借助 CloudWatch 数据库洞察，您可以监控数据库实例集的数据库负载，并对性能进行大规模分析和故障排除。有关数据库洞察的更多信息，请参阅[使用 CloudWatch 数据库洞察监控 Amazon RDS 数据库](USER_DatabaseInsights.md)。有关定价信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

下表提供支持性能详情的 Amazon RDS 数据库引擎。

**注意**  
有关 Amazon Aurora，请参阅《Amazon Aurora 用户指南》**中的[支持性能详情的 Amazon Aurora 数据库引擎](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.Overview.Engines.html)


|  Amazon RDS 数据库引擎  | 支持的引擎版本和区域 | 实例类限制 | 
| --- | --- | --- | 
|  Amazon RDS for MariaDB  |  有关适用于 RDS for MariaDB 的性能详情的版本和区域可用性的更多信息，请参阅[支持 Amazon RDS 中 Performance Insights 的区域和数据库引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.PerformanceInsights.md)。  |  以下实例类别不支持性能详情： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.Engines.html)  | 
|  RDS for MySQL  |  有关适用于 RDS for MySQL 的性能详情的版本和区域可用性的更多信息，请参阅[支持 Amazon RDS 中 Performance Insights 的区域和数据库引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.PerformanceInsights.md)。  |  以下实例类别不支持性能详情： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.Engines.html)  | 
|  Amazon RDS for Microsoft SQL Server  |  有关适用于 RDS for SQL Server 的性能详情的版本和区域可用性的更多信息，请参阅[支持 Amazon RDS 中 Performance Insights 的区域和数据库引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.PerformanceInsights.md)。  |  不适用  | 
|  Amazon RDS for PostgreSQL  |  有关适用于 RDS for PostgreSQL 的性能详情的版本和区域可用性的更多信息，请参阅[支持 Amazon RDS 中 Performance Insights 的区域和数据库引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.PerformanceInsights.md)。  |  不适用  | 
|  Amazon RDS for Oracle  |  有关适用于 RDS for Oracle 的性能详情的版本和区域可用性的更多信息，请参阅[支持 Amazon RDS 中 Performance Insights 的区域和数据库引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.PerformanceInsights.md)。  |  不适用  | 

## 支持性能详情功能的 Amazon RDS 数据库引擎、区域和实例类
<a name="USER_PerfInsights.Overview.PIfeatureEngnRegSupport"></a>

下表提供支持性能详情功能的 Amazon RDS 数据库引擎。


| 功能 | [定价套餐](https://aws.amazon.com/rds/performance-insights/pricing/) |  [支持的区域](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html#Concepts.RegionsAndAvailabilityZones.Regions)  |  [支持的数据库引擎](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html#Welcome.Concepts.DBInstance)  |  [支持的实例类](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html#Concepts.DBInstanceClass.Types)  | 
| --- | --- | --- | --- | --- | 
| [Performance Insights 的 SQL 统计数据](sql-statistics.md) | 全部 | 全部 |  全部  | 全部 | 
| [使用 Amazon RDS 的性能详情控制面板分析 Oracle 执行计划](USER_PerfInsights.UsingDashboard.AccessPlans.md) | 全部 | 全部 |  RDS for Oracle  | 全部 | 
| [分析一段时间内的数据库性能](USER_PerfInsights.UsingDashboard.AnalyzePerformanceTimePeriod.md) | 仅限付费套餐 |  全部  |  RDS for PostgreSQL  |  全部  | 
|  [查看性能详情主动建议](USER_PerfInsights.InsightsRecommendationViewDetails.md) | 仅限付费套餐 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.Engines.html)  |  全部  | 全部  | 

# 性能详情的定价和数据留存
<a name="USER_PerfInsights.Overview.cost"></a>

原定设置情况下，性能详情提供免费套餐，其中包括 7 天的性能数据历史记录和每月 100 万个 API 请求。您也可以购买更长的保留期。有关完整的定价信息，请参阅[性能详情定价](https://aws.amazon.com/rds/performance-insights/pricing/)。

在 RDS 控制台中，您可以为性能详情数据选择以下任何保留期：
+ **原定设置（7 天）**
+ ***n* 个月**，其中 ***n*** 是 1–24 之间的数字

![\[为您的性能详情数据选择保留期。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/pi-retention-periods.png)


要了解如何使用 AWS CLI 设置保留期，请参阅。

# 为 Amazon RDS 打开和关闭性能详情
<a name="USER_PerfInsights.Enabling"></a>

**重要**  
 AWS 已宣布性能详情功能的生命周期终止日期为：2026 年 6 月 30 日。在此日期之后，Amazon RDS 将不再支持性能详情控制台体验、灵活的保留期（1-24 个月）及其关联定价。性能详情 API 将继续存在，定价不变。性能详情 API 的费用将与 CloudWatch 数据库洞察的费用一起显示在您的 AWS 账单中。  
 建议您在 2026 年 6 月 30 日之前，将使用性能详情付费套餐的所有数据库实例升级到数据库洞察的高级模式。有关升级到数据库洞察的高级模式的信息，请参阅[开启适用于 Amazon RDS 的数据库洞察的高级模式](USER_DatabaseInsights.TurningOnAdvanced.md)。  
 如果您不采取任何行动，则使用性能详情的数据库实例将默认为使用数据库洞察的标准模式。在数据库洞察的标准模式下，您可能会在 7 天后无法访问性能数据历史记录，并且可能无法在 Amazon RDS 控制台中使用执行计划和按需分析功能。2026 年 6 月 30 日之后，只有数据库洞察的高级模式将支持执行计划和按需分析。  
 借助 CloudWatch 数据库洞察，您可以监控数据库实例集的数据库负载，并对性能进行大规模分析和故障排除。有关数据库洞察的更多信息，请参阅[使用 CloudWatch 数据库洞察监控 Amazon RDS 数据库](USER_DatabaseInsights.md)。有关定价信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

您可以在创建数据库实例或多可用区数据库集群时，为其打开性能详情。如果需要，可以稍后通过控制台修改数据库实例来关闭性能详情。打开和关闭性能详情不会导致停机、重启或失效转移。

**注意**  
Performance Schema 是 Amazon RDS for MariaDB or MySQL 使用的一个可选性能工具。如果打开或关闭 Performance Schema，则需要重新启动。但是，如果您打开或关闭性能详情，则无需重新启动。有关更多信息，请参阅 [Amazon RDS for MariaDB 或 Amazon RDS for MySQL 上性能详情的性能架构概述](USER_PerfInsights.EnableMySQL.md)。

性能详情代理占用数据库主机上有限的 CPU 和内存。当数据库负载较高时，代理将通过降低收集数据的频率来限制性能影响。

------
#### [ Console ]

在控制台中，您可以在创建或修改数据库实例或多可用区数据库集群时打开或关闭性能详情。

**创建数据库实例或多可用区数据库集群时打开或关闭性能详情**

创建新的数据库实例或多可用区数据库集群后，Amazon RDS 默认情况下会启用性能详情。要关闭性能详情，请选择**数据库洞察 - 标准**选项，然后取消选择**启用性能详情**选项。

有关更多信息，请参阅以下主题。
+ 要创建数据库实例，请按照[创建 Amazon RDS 数据库实例](USER_CreateDBInstance.md)中用于您的数据库引擎的说明操作。
+ 要创建多可用区数据库集群，请按 [创建 Amazon RDS 的多可用区数据库集群](create-multi-az-db-cluster.md) 中数据库引擎的说明操作。

以下屏幕截图显示了**性能详情**部分。

![\[在使用控制台创建数据库实例或多可用区数据库集群期间打开性能详情\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_enabling.png)


如果您选择**启用性能详情**，您有以下选项：
+ **保留期**（仅适用于数据库洞察的标准模式）：保留性能详情数据的时间量。保留期设置为**默认值（7 天）**。要将性能数据保留更长时间，请指定 1–24 个月。有关保留期的更多信息，请参阅。[性能详情的定价和数据留存](USER_PerfInsights.Overview.cost.md)
+ **AWS KMS key** - 指定您的 AWS KMS key。性能详情使用您的 KMS 密钥来加密所有潜在的敏感数据。正在传输的数据和静态数据都会被加密。有关更多信息，请参阅 [更改性能详情的 AWS KMS 策略](USER_PerfInsights.access-control.cmk-policy.md)。

**在修改数据库实例或多可用区数据库集群时打开或关闭性能详情**

在控制台中，您可以修改数据库实例或多可用区数据库集群来管理性能详情。

**使用控制台为数据库实例或多可用区数据库集群管理性能详情**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 选择**数据库**。

1. 选择数据库实例或多可用区数据库集群，然后选择**修改**。

1. 要开启性能详情，请选择**启用性能详情**。要关闭性能详情，请选择**数据库洞察 - 标准**选项，然后取消选择**启用性能详情**选项。

   如果您选择**启用性能详情**，您有以下选项：
   + **保留期**（仅适用于数据库洞察的标准模式）：保留性能详情数据的时间量。保留期设置为**默认值（7 天）**。要将性能数据保留更长时间，请指定 1–24 个月。有关保留期的更多信息，请参阅。[性能详情的定价和数据留存](USER_PerfInsights.Overview.cost.md)
   + **AWS KMS key** - 指定您的 KMS 密钥。性能详情使用您的 KMS 密钥来加密所有潜在的敏感数据。正在传输的数据和静态数据都会被加密。有关更多信息，请参阅 [加密 Amazon RDS 资源](Overview.Encryption.md)。

1. 选择**继续**。

1. 对于**修改计划**，请选择“立即应用”。如果您选择“Apply during the next scheduled maintenance window”（在下一个计划的维护时段内应用），则您的实例将忽略此设置并立即打开性能详情。

1. 选择**修改实例**。

------
#### [ AWS CLI ]

使用 [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) AWS CLI 命令时，通过指定 `--enable-performance-insights` 可开启性能详情，并将 `--database-insights-mode` 设置为 `advanced` 或 `standard`。要关闭性能详情，请指定 `--no-enable-performance-insights` 并将 `database-insights-mode` 设置为 `standard`。

您还可以使用以下 AWS CLI 命令指定这些值：
+  [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) 
+  [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) 
+  [create-db-instance-read-replica](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html) 
+  [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 
+  [restore-db-instance-from-s3](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-s3.html) 

在 CLI 中打开性能详情时，可以选择通过 `--performance-insights-retention-period` 选项指定保留性能详情数据的天数。您可以指定 `7`、*month* \$1 31（其中 *month* 为 1–23 之间的数字）或 `731`。例如，如果您想将性能数据保留 3 个月，请指定 `93`，也就是 3 \$1 31。默认值为 `7` 天。有关保留期的更多信息，请参阅。[性能详情的定价和数据留存](USER_PerfInsights.Overview.cost.md)

以下示例为 `sample-db-cluster` 开启性能详情并指定将性能详情数据保留 93 天（3 个月）。

对于 Linux、macOS 或 Unix：

```
aws rds modify-db-cluster \
	--database-insights-mode standard \
    --db-cluster-identifier sample-db-instance \
    --enable-performance-insights \
    --performance-insights-retention-period 93
```

对于：Windows

```
aws rds modify-db-cluster ^
	--database-insights-mode standard ^
    --db-cluster-identifier sample-db-instance ^
    --enable-performance-insights ^
    --performance-insights-retention-period 93
```

如果您指定保留期（如 94 天），这不是一个有效值，则 RDS 会发出错误。

```
An error occurred (InvalidParameterValue) when calling the CreateDBInstance operation: 
Invalid Performance Insights retention period. Valid values are: [7, 31, 62, 93, 124, 155, 186, 217, 
248, 279, 310, 341, 372, 403, 434, 465, 496, 527, 558, 589, 620, 651, 682, 713, 731]
```

**注意**  
对于未在集群级别管理性能详情的数据库集群中的实例，只能切换性能详情。

------
#### [ RDS API ]

在使用 [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) 操作 Amazon RDS API 操作创建新数据库实例时，通过将 `EnablePerformanceInsights` 设置为 `True` 来打开性能详情。要关闭性能详情，请将 `EnablePerformanceInsights` 设置为 `False` 并将 `DatabaseInsightsMode` 设置为 `standard`。

您还可以使用以下 API 操作指定 `EnablePerformanceInsights` 值：
+  [CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html)（多可用区数据库集群） 
+  [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html)（多可用区数据库集群） 
+  [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 
+  [CreateDBInstanceReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html) 
+  [RestoreDBInstanceFromS3](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromS3.html) 

在打开性能详情时，可以通过 `PerformanceInsightsRetentionPeriod` 参数指定性能详情数据的保留时间，以天为单位。您可以指定 `7`、*month* \$1 31（其中 *month* 为 1–23 之间的数字）或 `731`。例如，如果您想将性能数据保留 3 个月，请指定 `93`，也就是 3 \$1 31。默认值为 `7` 天。有关保留期的更多信息，请参阅。[性能详情的定价和数据留存](USER_PerfInsights.Overview.cost.md)

------

# Amazon RDS for MariaDB 或 Amazon RDS for MySQL 上性能详情的性能架构概述
<a name="USER_PerfInsights.EnableMySQL"></a>

Performance Schema 是一项可选功能，用来监控 Amazon RDS for MariaDB 或 Amazon RDS for MySQL 低细节层次的运行时性能。性能架构旨在将对数据库性能的影响降至最低。Performance Insights 是一个单独的功能，无论有没有 Performance Schema，您都可以使用该功能。

**Topics**
+ [性能架构概览](#USER_PerfInsights.EnableMySQL.overview)
+ [性能详情和性能架构](#USER_PerfInsights.effect-of-pfs)
+ [让 Performance Insights 自动管理 Performance Schema](#USER_PerfInsights.EnableMySQL.options)
+ [重启对 Performance Schema 的影响](#USER_PerfInsights.EnableMySQL.reboot)
+ [确定性能详情是否正在管理 Performance Schema](USER_PerfInsights.EnableMySQL.determining-status.md)
+ [为 Amazon RDS for MariaDB 或 Amazon RDS for MySQL 开启 Performance Schema](USER_PerfInsights.EnableMySQL.RDS.md)

## 性能架构概览
<a name="USER_PerfInsights.EnableMySQL.overview"></a>

Performance Schema 监控 MariaDB 和 MySQL 数据库中的事件。*事件*是一项消耗时间的数据库服务器操作，已进行了分析，以便收集计时信息。以下为事件示例：
+ 函数调用
+ 等待操作系统
+ SQL 执行阶段
+ SQL 语句组

`PERFORMANCE_SCHEMA` 存储引擎是实施 Performance Schema 功能的一种机制。该引擎使用数据库源代码中的分析来收集事件数据。该引擎将事件存储在 `performance_schema` 数据库的 memory-only 表中。您可以查询 `performance_schema`，就像您可以查询任何其他表一样。有关更多信息，请参阅 *MySQL 参考手册*中的 [MySQL Performance Schema](https://dev.mysql.com/doc/refman/8.0/en/performance-schema.html)。

## 性能详情和性能架构
<a name="USER_PerfInsights.effect-of-pfs"></a>

Performance Insights 和 Performance Schema 是独立的功能，但它们相互关联。Amazon RDS for MariaDB 或 MySQL 的性能详情的行为取决于性能架构是否已开启，如果已开启，则取决于性能详情是否自动管理性能架构。下表描述了该行为。


| 性能架构已开启 | 性能详情管理模式 | 性能详情行为 | 
| --- | --- | --- | 
|  是  |  自动  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_PerfInsights.EnableMySQL.html)  | 
|  是  |  手动  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_PerfInsights.EnableMySQL.html)  | 
|  否  |  不适用  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_PerfInsights.EnableMySQL.html)  | 

## 让 Performance Insights 自动管理 Performance Schema
<a name="USER_PerfInsights.EnableMySQL.options"></a>

在打开 Performance Insights 的情况下创建 Amazon RDS for MariaDB 或 Amazon RDS for MySQL 数据库实例时，也会打开 Performance Schema。在这种情况下，性能详情会自动管理您的性能架构参数。这是建议的配置。

当 Performance Insights 自动管理 Performance Schema 时，`performance_schema` 的**来源**是 `System default`。

**注意**  
t4g.medium 实例类不支持自动管理性能架构。

如果手动更改 `performance_schema` 参数值，然后稍后想恢复为自动管理，请参阅[为 Amazon RDS for MariaDB 或 Amazon RDS for MySQL 开启 Performance Schema](USER_PerfInsights.EnableMySQL.RDS.md)。

**重要**  
当 Performance Insights 打开 Performance Schema 时，它不会更改参数组值。但是，正在运行的数据库实例上的值会更改。查看更改后的值的唯一方法是运行 `SHOW GLOBAL VARIABLES` 命令。

## 重启对 Performance Schema 的影响
<a name="USER_PerfInsights.EnableMySQL.reboot"></a>

Performance Insights 和 Performance Schema 对数据库实例重启的要求不同：

**Performance Schema**  
要打开或关闭此功能，您必须重启数据库实例。

**性能详情**  
要打开或关闭此功能，您不需要重启数据库实例。

如果当前未打开 Performance Schema，并且您在不重启数据库实例的情况下打开 Performance Insights，则不会打开 Performance Schema。

# 确定性能详情是否正在管理 Performance Schema
<a name="USER_PerfInsights.EnableMySQL.determining-status"></a>

要了解性能详情当前是否正在管理所有受支持引擎版本的 Performance Schema，请查看下表。


| performance\$1schema 参数设置 | “源”列设置 | 性能详情正在管理 Performance Schema？ | 
| --- | --- | --- | 
| 0 | System default | 是 | 
| 0 或者 1 | Modified | 否 | 

在以下过程中，您可以确定性能详情是否正在自动管理 Performance Schema。

**自动确定性能详情是否正在管理 Performance Schema**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 选择**参数组**。

1. 选择数据库实例的参数组名称。

1. 在搜索栏中输入 **performance\$1schema**。

1. 检查**源**是否为系统默认设置，以及**值**是否为 **0**。如果是这样，性能详情将自动管理 Performance Schema。

   在此处所示的示例中，性能详情未自动管理 Performance Schema。  
![\[显示修改了 performance_schema 参数的设置。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_schema_user.png)

# 为 Amazon RDS for MariaDB 或 Amazon RDS for MySQL 开启 Performance Schema
<a name="USER_PerfInsights.EnableMySQL.RDS"></a>

假设已为数据库实例或多可用区数据库集群打开性能详情，但当前未管理 Performance Schema。如果要让性能详情自动管理 Performance Schema，请完成以下步骤。

**配置 Performance Schema 以进行自动管理**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 选择**参数组**。

1. 选择数据库实例或多可用区数据库集群的参数组名称。

1. 选择**编辑**。

1. 在搜索栏中输入 **performance\$1schema**。

1. 选择 `performance_schema` 参数。

1. 选择**设置为默认值**。

1. 选择**将值设置为默认值**进行确认。

1. 选择**保存更改**。

1. 重启数据库实例或多可用区数据库集群。
**重要**  
无论何时打开或关闭 Performance Schema，都要确保重启数据库实例或多可用区数据库集群。

有关修改实例参数的更多信息，请参阅[在 Amazon RDS 中修改数据库参数组中的参数](USER_WorkingWithParamGroups.Modifying.md)。有关控制面板的更多信息，请参阅 [使用 Performance Insights 控制面板分析指标](USER_PerfInsights.UsingDashboard.md)。有关 MySQL Performance Schema 的更多信息，请参阅 MySQL 文档中的 [MySQL Performance Schema](https://dev.mysql.com/doc/refman/8.0/en/performance-schema.html)（适用于 8.0）和 [MySQL Performance Schema](https://dev.mysql.com/doc/refman/8.4/en/performance-schema.html)（适用于 8.4）。

# 为 Performance Insights 配置访问策略
<a name="USER_PerfInsights.access-control"></a>

要访问 Performance Insights，主体必须拥有 AWS Identity and Access Management (IAM) 的相应权限。

**注意**  
要将性能详情与客户管理的密钥一起使用，请向用户授予 AWS AWS KMS 密钥的 `kms:Decrypt` 和 `kms:GenerateDataKey` 权限。

使用以下方法访问性能详情：
+ [附加 `AmazonRDSPerformanceInsightsReadOnly` 托管策略以获取只读权限](USER_PerfInsights.access-control.managed-policy.md)
+ [附加 `AmazonRDSPerformanceInsightsFullAccess` 托管策略以获取对 Performance Insights API 的所有操作的访问权限](USER_PerfInsights.access-control.FullAccess-managed-policy.md)
+ [创建具有特定权限的自定义 IAM 策略](USER_PerfInsights.access-control.custom-policy.md)
+ [配置加密的性能详情数据的 AWS KMS 权限](USER_PerfInsights.access-control.cmk-policy.md)
+ [使用资源级权限设置精细访问权限](USER_PerfInsights.access-control.dimensionAccess-policy.md)
+ [使用基于标签的访问控制通过资源标签管理权限](USER_PerfInsights.access-control.tag-based-policy.md)

# 将 AmazonRDSPerformanceInsightsReadOnly 策略附加到 IAM 主体
<a name="USER_PerfInsights.access-control.managed-policy"></a>

`AmazonRDSPerformanceInsightsReadOnly` 是 AWS 托管策略，可以授予对 Amazon RDS Performance Insights API 的所有只读操作的访问权限。

如果将 `AmazonRDSPerformanceInsightsReadOnly` 附加到权限集或角色，还必须附加以下 CloudWatch 权限：
+ `GetMetricStatistics`
+ `ListMetrics`
+ `GetMetricData`

有了这些权限，接收方可以使用性能详情以及其他控制台功能。

 有关 CloudWatch 权限的更多信息，请参阅 [Amazon CloudWatch 权限参考](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/permissions-reference-cw.html)。

有关 `AmazonRDSPerformanceInsightsReadOnly` 的更多信息，请参阅[AWS 托管式策略：AmazonRDSPerformanceInsightsReadOnly](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSPerformanceInsightsReadOnly)。

# 将 AmazonRDSPerformanceInsightsFullAccess 策略附加到 IAM 主体
<a name="USER_PerfInsights.access-control.FullAccess-managed-policy"></a>

`AmazonRDSPerformanceInsightsFullAccess` 是 AWS 托管策略，可以授予对 Amazon RDS Performance Insights API 的所有操作的访问权限。

如果将 `AmazonRDSPerformanceInsightsFullAccess` 附加到权限集或角色，还必须附加以下 CloudWatch 权限：
+ `GetMetricStatistics`
+ `ListMetrics`
+ `GetMetricData`

有了这些权限，接收方可以使用性能详情以及其他控制台功能。

 有关 CloudWatch 权限的更多信息，请参阅 [Amazon CloudWatch 权限参考](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/permissions-reference-cw.html)。

有关 `AmazonRDSPerformanceInsightsFullAccess` 的更多信息，请参阅[AWS 托管式策略：AmazonRDSPerformanceInsightsFullAccess](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSPerformanceInsightsFullAccess)。

# 为 Performance Insights 创建自定义 IAM 策略
<a name="USER_PerfInsights.access-control.custom-policy"></a>

对于没有 `AmazonRDSPerformanceInsightsReadOnly` 或 `AmazonRDSPerformanceInsightsFullAccess` 策略的用户，可以通过创建或修改用户托管式 IAM 策略，来授予对 Performance Insights 的访问权限。在将策略附加到 IAM 权限集或角色时，接收人可以使用 Performance Insights。

**创建自定义策略**

1. 打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中，选择**策略**。

1. 选择**创建策略**。

1. 在**创建策略**页面上，选择 **JSON** 选项。

1. 复制并粘贴**《AWS 托管策略参考指南》中的 *JSON 策略文档*部分提供的有关 [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSPerformanceInsightsReadOnly.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSPerformanceInsightsReadOnly.html) 或 [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSPerformanceInsightsFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSPerformanceInsightsFullAccess.html) 策略的文本。

1. 选择**查看策略**。

1. 为策略提供名称并可以选择提供描述，然后选择**创建策略**。

现在，可以将策略附加到权限集或角色。以下过程假设您已经有一个可用于此目的的用户。

**将策略附加到用户**

1. 打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中，选择 **Users**。

1. 从列表中选择现有用户。
**重要**  
要使用 Performance Insights，请确保除了自定义策略之外，您还有权访问 Amazon RDS。例如，`AmazonRDSPerformanceInsightsReadOnly` 预定义策略提供了对 Amazon RDS 的只读访问权限。有关更多信息，请参阅“[使用策略管理访问](UsingWithRDS.IAM.md#security_iam_access-manage)”。

1. 在 **Summary (摘要)** 页上，选择 **Add permissions (添加权限)**。

1. 选择**直接附加现有策略**。对于**搜索**，键入策略名称的前几个字符，如下图所示。  
![\[选择一个策略\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_attach_iam_policy.png)

1. 选择策略，然后选择 **Next: Review**。

1. 选择 **Add permissions (添加权限)**。

# 更改性能详情的 AWS KMS 策略
<a name="USER_PerfInsights.access-control.cmk-policy"></a>

Performance Insights 使用 AWS KMS key 加密敏感数据。通过 API 或控制台启用 Performance Insights 时，您可以执行以下任一操作：
+ 选择默认 AWS 托管式密钥。

  Amazon RDS 为新的数据库实例使用 AWS 托管式密钥。Amazon RDS 将为您的 AWS 账户创建 AWS 托管式密钥。您的 AWS 账户在每个 AWS 区域都有用于 Amazon RDS 的不同 AWS 托管式密钥。
+ 选择客户托管密钥。

  如果您指定一个客户托管密钥，则您账户中调用 Performance Insights API 的用户需要在 KMS 密钥具有 `kms:Decrypt` 和 `kms:GenerateDataKey` 权限。您可以通过 IAM policy 配置这些权限。但是，我们建议您通过 KMS 密钥策略来管理这些权限。有关更多信息，请参阅《*AWS Key Management Service 开发人员指南*》中的[在 AWS KMS 中使用密钥策略](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)。

**Example**  
以下示例显示了如何将语句添加到 KMS 密钥策略。这些语句可以访问 Performance Insights。您可能需要更改一些限制，这取决于您使用 KMS 密钥的方式。在将语句添加到您的策略之前，请删除所有注释。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id" : "your-policy",
    "Statement" : [ 
        {
            "Sid" : "AllowViewingRDSPerformanceInsights",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::444455556666:role/Role1"
                ]
                },
             "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey"
                ],
            "Resource": "*",
            "Condition" : {
            "StringEquals" : {
                "kms:ViaService" : "rds.us-east-1.amazonaws.com"
                },
            "ForAnyValue:StringEquals": {
                "kms:EncryptionContext:aws:pi:service": "rds",
                "kms:EncryptionContext:service": "pi",
                "kms:EncryptionContext:aws:rds:db-id": "db-AAAAABBBBBCCCCDDDDDEEEEE"
                }
            }
        }
    ]
}
```

## Performance Insights 如何使用 AWS KMS 客户托管密钥
<a name="USER_PerfInsights.access-control.PI-using-KMS-cmk-policy"></a>

Performance Insights 使用客户托管密钥加密敏感数据。当您开启 Performance Insights 时，可以通过 API 提供 AWS KMS 密钥。性能详情对此密钥创建 AWS KMS 权限。它使用密钥并执行必要的操作来处理敏感数据。敏感数据包括用户、数据库、应用程序和 SQL 查询文本等字段。Performance Insights 可确保数据在静态和动态时都保持加密状态。

## Performance Insights IAM 如何使用 AWS KMS
<a name="USER_PerfInsights.access-control.PI-work-with-kms"></a>

IAM 提供针对特定 API 的权限。Performance Insights 具有以下公有 API，您可以使用 IAM 策略对其进行限制：
+ `DescribeDimensionKeys`
+ `GetDimensionKeyDetails`
+ `GetResourceMetadata`
+ `GetResourceMetrics`
+ `ListAvailableResourceDimensions`
+ `ListAvailableResourceMetrics`

您可以使用以下 API 请求来获取敏感数据。
+ `DescribeDimensionKeys`
+ `GetDimensionKeyDetails`
+ `GetResourceMetrics`

当您使用 API 获取敏感数据时，Performance Insights 会利用调用方的凭证。此检查可确保敏感数据的访问权限仅限于有权访问 KMS 密钥的用户。

调用这些 API 时，您需要通过 IAM 策略调用 API 的权限，以及通过 AWS KMS 密钥策略调用 `kms:decrypt` 操作的权限。

`GetResourceMetrics` API 可以返回敏感和非敏感数据。请求参数决定响应是否应包含敏感数据。当请求的筛选条件或分组依据参数中包含敏感维度时，API 会返回敏感数据。

有关可以与 `GetResourceMetrics` API 一起使用的维度的更多信息，请参阅 [DimensionGroup](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DimensionGroup.html)。

**Example 示例**  
以下示例请求 `db.user` 组的敏感数据：  

```
POST / HTTP/1.1
Host: <Hostname>
Accept-Encoding: identity
X-Amz-Target: PerformanceInsightsv20180227.GetResourceMetrics
Content-Type: application/x-amz-json-1.1
User-Agent: <UserAgentString>
X-Amz-Date: <Date> 
Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=<Headers>, Signature=<Signature>
Content-Length: <PayloadSizeBytes>
{
  "ServiceType": "RDS",
  "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W",
  "MetricQueries": [
    {
      "Metric": "db.load.avg",
      "GroupBy": {
        "Group": "db.user",
        "Limit": 2
      }
    }
  ],
  "StartTime": 1693872000,
  "EndTime": 1694044800,
  "PeriodInSeconds": 86400
}
```

**Example**  
以下示例请求 `db.load.avg` 指标的非敏感数据：  

```
POST / HTTP/1.1
Host: <Hostname>
Accept-Encoding: identity
X-Amz-Target: PerformanceInsightsv20180227.GetResourceMetrics
Content-Type: application/x-amz-json-1.1
User-Agent: <UserAgentString>
X-Amz-Date: <Date> 
Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=<Headers>, Signature=<Signature>
Content-Length: <PayloadSizeBytes>
{
    "ServiceType": "RDS",
    "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W",
    "MetricQueries": [
        {
            "Metric": "db.load.avg"
        }
    ],
    "StartTime": 1693872000,
    "EndTime": 1694044800,
    "PeriodInSeconds": 86400
}
```

# 授予 Performance Insights 精细访问权限
<a name="USER_PerfInsights.access-control.dimensionAccess-policy"></a>

精细访问控制功能提供用于控制对 Performance Insights 的访问的其他方法。此访问控制功能可以允许或拒绝对 `GetResourceMetrics`、`DescribeDimensionKeys` 和 `GetDimensionKeyDetails` Performance Insights 操作的各个维度的访问。要使用精细访问功能，请使用条件键在 IAM 策略中指定维度。访问权限的评估遵循 IAM 策略评估逻辑。有关更多信息，请参阅《IAM 用户指南》**中的[策略评估逻辑](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)。如果 IAM 策略声明未指定任何维度，该声明将控制对指定操作的所有维度的访问。有关可用维度的列表，请参阅 [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DimensionGroup.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DimensionGroup.html)。

要找出您的凭证有权访问的维度，请使用 `ListAvailableResourceDimensions` 中的 `AuthorizedActions` 参数并指定操作。允许的 `AuthorizedActions` 值如下所示：
+ `GetResourceMetrics`
+ `DescribeDimensionKeys`
+ `GetDimensionKeyDetails`

例如，如果您为 `AuthorizedActions` 参数指定 `GetResourceMetrics`，`ListAvailableResourceDimensions` 将返回 `GetResourceMetrics` 操作有权访问的维度列表。如果您在 `AuthorizedActions` 参数中指定了多个操作，`ListAvailableResourceDimensions` 将返回这些操作有权访问的维度的交集。

**Example**  
以下示例提供了对 `GetResourceMetrics` 和 `DescribeDimensionKeys` 操作的指定维度的访问权限。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowToDiscoverDimensions",
            "Effect": "Allow",
            "Action": [
                "pi:ListAvailableResourceDimensions"
            ],
            "Resource": [
                "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W"
            ]
        },
        {
            "Sid": "SingleAllow",
            "Effect": "Allow",
            "Action": [
                "pi:GetResourceMetrics",
                "pi:DescribeDimensionKeys"
            ],
            "Resource": [
                "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W"
            ],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "pi:Dimensions": [
                        "db.sql_tokenized.id",
                        "db.sql_tokenized.statement"
                    ]
                }
            }
        }
        

    ]
}
```
以下是对所请求维度的响应：  

```
	// ListAvailableResourceDimensions API
// Request
{
    "ServiceType": "RDS",
    "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W",
    "Metrics": [ "db.load" ],
    "AuthorizedActions": ["DescribeDimensionKeys"]
}

// Response
{    
    "MetricDimensions": [ {
        "Metric": "db.load",
        "Groups": [
            {
                "Group": "db.sql_tokenized",
                "Dimensions": [
                    { "Identifier": "db.sql_tokenized.id" },
                  //  { "Identifier": "db.sql_tokenized.db_id" }, // not included because not allows in the IAM Policy
                    { "Identifier": "db.sql_tokenized.statement" }
                ] 
            }
            
        ] }
    ]
}
```
以下示例为维度指定一个允许访问和两个拒绝访问权限。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
          {
            "Sid": "AllowToDiscoverDimensions",
            "Effect": "Allow",
            "Action": [
                "pi:ListAvailableResourceDimensions"
            ],
            "Resource": [
                "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W"
            ]
          },

          {
            "Sid": "O01AllowAllWithoutSpecifyingDimensions",
            "Effect": "Allow",
            "Action": [
                "pi:GetResourceMetrics",
                "pi:DescribeDimensionKeys"
            ],
            "Resource": [
                "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W"
            ]
        },
        
        {
            "Sid": "O01DenyAppDimensionForAll",
            "Effect": "Deny",
            "Action": [
                "pi:GetResourceMetrics",
                "pi:DescribeDimensionKeys"
            ],
            "Resource": [
                "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W"
            ],
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "pi:Dimensions": [
                        "db.application.name"
                    ]
                }
            }
        },
        
        {
            "Sid": "O01DenySQLForGetResourceMetrics",
            "Effect": "Deny",
            "Action": [
                "pi:GetResourceMetrics"
            ],
            "Resource": [
                "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W"
            ],
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "pi:Dimensions": [
                        "db.sql_tokenized.statement"
                    ]
                }
            }
        }
    ]
}
```
以下是对请求维度的响应：  

```
			// ListAvailableResourceDimensions API
// Request
{
    "ServiceType": "RDS",
    "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W",
    "Metrics": [ "db.load" ],
    "AuthorizedActions": ["GetResourceMetrics"]
}

// Response
{    
    "MetricDimensions": [ {
        "Metric": "db.load",
        "Groups": [
            {
                "Group": "db.application",
                "Dimensions": [
                
                  // removed from response because denied by the IAM Policy
                  //  { "Identifier": "db.application.name" }  
                ]
            },
            {
                "Group": "db.sql_tokenized",
                "Dimensions": [
                    { "Identifier": "db.sql_tokenized.id" },
                    { "Identifier": "db.sql_tokenized.db_id" },
                    
                  // removed from response because denied by the IAM Policy
                  //  { "Identifier": "db.sql_tokenized.statement" }
                ] 
            },
            ...
        ] }
    ]
}
```

```
// ListAvailableResourceDimensions API
// Request
{
    "ServiceType": "RDS",
    "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W",
    "Metrics": [ "db.load" ],
    "AuthorizedActions": ["DescribeDimensionKeys"]
}

// Response
{    
    "MetricDimensions": [ {
        "Metric": "db.load",
        "Groups": [
            {
                "Group": "db.application",
                "Dimensions": [
                  // removed from response because denied by the IAM Policy
                  //  { "Identifier": "db.application.name" }  
                ]
            },
            {
                "Group": "db.sql_tokenized",
                "Dimensions": [
                    { "Identifier": "db.sql_tokenized.id" },
                    { "Identifier": "db.sql_tokenized.db_id" },
                    
                  // allowed for DescribeDimensionKeys because our IAM Policy 
                  // denies it only for GetResourceMetrics
                    { "Identifier": "db.sql_tokenized.statement" }
                ] 
            },
            ...
        ] }
    ]
}
```

# 对性能详情使用基于标签的访问控制
<a name="USER_PerfInsights.access-control.tag-based-policy"></a>

您可以使用继承自父数据库实例的标签来控制对性能详情指标的访问权限。要控制对性能详情操作的访问，请使用 IAM 策略。这些策略可以检查数据库实例上的标签以确定权限。

## 标签如何与性能详情配合使用
<a name="USER_PerfInsights.access-control.tag-inheritance"></a>

性能详情会自动应用您的数据库实例标签来授权性能详情指标。向数据库实例添加标签时，您可以立即使用这些标签来控制对性能详情数据的访问。
+ 要为性能详情指标添加或更新标签，请修改数据库实例上的标签。
+ 要查看性能详情指标的标签，请对性能详情指标资源调用 `ListTagsForResource`。它将从与该指标关联的数据库实例返回标签。

**注意**  
如果您尝试直接对性能详情指标使用 `TagResource` 和 `UntagResource` 操作，则会返回错误。

## 创建基于标签的 IAM 策略
<a name="USER_PerfInsights.access-control.tag-based-policies"></a>

要控制对性能详情操作的访问权限，请使用 IAM 策略中的 `aws:ResourceTag` 条件键。这些策略会检查您的数据库实例上的标签。

**Example**  
该策略禁止访问生产数据库的性能详情指标。该策略拒绝在性能详情中对任何带有 `env:prod` 标签的数据库资源执行 `pi:GetResourceMetrics` 操作。  

```
 {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "pi:GetResourceMetrics",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/env": "prod"
                }
            }
        }
    ]
}
```

# 使用 Performance Insights 控制面板分析指标
<a name="USER_PerfInsights.UsingDashboard"></a>

**重要**  
 AWS 已宣布性能详情功能的生命周期终止日期为：2026 年 6 月 30 日。在此日期之后，Amazon RDS 将不再支持性能详情控制台体验、灵活的保留期（1-24 个月）及其关联定价。性能详情 API 将继续存在，定价不变。性能详情 API 的费用将与 CloudWatch 数据库洞察的费用一起显示在您的 AWS 账单中。  
 建议您在 2026 年 6 月 30 日之前，将使用性能详情付费套餐的所有数据库实例升级到数据库洞察的高级模式。有关升级到数据库洞察的高级模式的信息，请参阅[开启适用于 Amazon RDS 的数据库洞察的高级模式](USER_DatabaseInsights.TurningOnAdvanced.md)。  
 如果您不采取任何行动，则使用性能详情的数据库实例将默认为使用数据库洞察的标准模式。在数据库洞察的标准模式下，您可能会在 7 天后无法访问性能数据历史记录，并且可能无法在 Amazon RDS 控制台中使用执行计划和按需分析功能。2026 年 6 月 30 日之后，只有数据库洞察的高级模式将支持执行计划和按需分析。  
 借助 CloudWatch 数据库洞察，您可以监控数据库实例集的数据库负载，并对性能进行大规模分析和故障排除。有关数据库洞察的更多信息，请参阅[使用 CloudWatch 数据库洞察监控 Amazon RDS 数据库](USER_DatabaseInsights.md)。有关定价信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

Performance Insights 控制面板包含帮助您分析和排查性能问题的数据库性能信息。在主控制面板页面上，可以查看有关数据库负载的信息。您可以按维度（例如等待事件或 SQL）对数据库负载进行“切片”。

**Topics**
+ [性能详情控制面板概览](USER_PerfInsights.UsingDashboard.Components.md)
+ [访问性能详情控制面板](USER_PerfInsights.UsingDashboard.Opening.md)
+ [按等待事件分析数据库负载](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.md)
+ [分析一段时间内的数据库性能](USER_PerfInsights.UsingDashboard.AnalyzePerformanceTimePeriod.md)
+ [使用性能详情中的“主要 SQL”选项卡分析查询](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.md)
+ [分析 Oracle 最大 PDB 负载](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.TopPDB.md)
+ [使用 Amazon RDS 的性能详情控制面板分析执行计划](USER_PerfInsights.UsingDashboard.AnalyzingPlans.md)

# 性能详情控制面板概览
<a name="USER_PerfInsights.UsingDashboard.Components"></a>

与性能详情进行交互的最简单方式即为控制面板。以下示例显示了 PostgreSQL 数据库实例的控制面板。

![\[筛选指标\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_0b.png)


**Topics**
+ [时间范围筛选器](#USER_PerfInsights.UsingDashboard.Components.time-range)
+ [计数器指标图表](#USER_PerfInsights.UsingDashboard.Components.Countermetrics)
+ [数据库负载图表](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions)
+ [主要维度表](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable)

## 时间范围筛选器
<a name="USER_PerfInsights.UsingDashboard.Components.time-range"></a>

默认情况下，Performance Insights 控制面板将显示最近一小时的数据库负载。您可以将此范围调整为短至 5 分钟或长达 2 年。您也可以选择自定义相对范围。

![\[Performance Insights 相对时间\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-relative-time.png)


您可以选择一个具有开始和结束日期和时间的绝对范围。以下示例显示的时间范围从 2024 年 9 月 25 日午夜开始，到 2024 年 9 月 28 日晚上 11:59 结束。

![\[Performance Insights 绝对时间\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-absolute-time.png)


默认情况下，性能详情控制面板的时区为协调世界时（UTC）。也可以选择本地时区。

![\[为性能详情控制面板选择本地时区\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-local-time-zone.png)


## 计数器指标图表
<a name="USER_PerfInsights.UsingDashboard.Components.Countermetrics"></a>

使用计数器指标，您可以自定义 Performance Insights 控制面板来包括最多 10 个其他图表。这些图表显示了所选的数十个操作系统和数据库性能指标。您可将此信息与数据库负载相关联，以帮助识别和分析性能问题。

 **计数器指标**图表显示了性能计数器的数据。原定设置指标取决于数据库引擎：
+ MySQL 和 MariaDB – `db.SQL.Innodb_rows_read.avg`
+ Oracle – `db.User.user calls.avg`
+ Microsoft SQL Server – `db.Databases.Active Transactions(_Total).avg`
+ PostgreSQL – `db.Transactions.xact_commit.avg`

![\[计数器指标\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/oracle_perf_insights_counters.png)


要更改性能计数器，请选择 **Manage Metrics**（管理指标）。您可以选择多个**操作系统指标**或**数据库指标**，如以下屏幕截图所示。要查看任何指标的详细信息，请将鼠标悬停在相应指标名称上。

![\[筛选指标\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_select_metrics.png)


有关可以为每个数据库引擎添加的计数器指标的说明，请参阅 [性能详情计数器指标](USER_PerfInsights_Counters.md)。

## 数据库负载图表
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions"></a>

**数据库负载**图表显示数据库负载与**最大 vCPU** 线表示的数据库实例容量的比较情况。预设情况下，堆叠折线图将以每单位时间的平均活动会话数表示数据库负载。数据库负载按等待状态进行切片（分组）。

![\[数据库负载\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_2.png)


### 按维度切片的数据库负载
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.dims"></a>

您可以选择按任何受支持维度分组的活动会话显示负载。下表显示了不同引擎支持的维度。


| 维度 | Oracle | SQL Server | PostgreSQL | MySQL | 
| --- | --- | --- | --- | --- | 
|  主机  |  是  |  是  |  是  |  是  | 
|  SQL  |  是  |  是  |  是  |  是  | 
|  用户  |  是  |  是  |  是  |  是  | 
|  等待  |  是  |  是  |  是  |  是  | 
|  计划  |  是  |  否  |  否  |  否  | 
|  应用程序  |  否  |  否  |  是  |  否  | 
|  数据库  |  否  |  否  |  是  |  是  | 
|  会话类型  |  否  |  否  |  是  |  否  | 

下图显示了 PostgreSQL 数据库实例的维度。

![\[筛选指标\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_2b.png)


### 维度项目的数据库负载详细信息
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.item-details"></a>

要查看维度中数据库负载项目的详细信息，请将光标悬停在相应项目名称上。下图显示了 SQL 语句的详细信息。

![\[数据库负载项目详细信息\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_2c.png)


要在图例中查看任何项目在选定时间段内的详细信息，请将鼠标悬停在相应项目上。

![\[数据库负载的时间段详细信息\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_3.png)


## 主要维度表
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable"></a>

主要维度表将按不同的维度切割数据库负载。维度是数据库负载不同特征的类别或“切片依据”。如果维度为 SQL，则 **Top SQL**（主要 SQL）显示了对数据库负载影响最大的 SQL 语句。

![\[前 N 个维度\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_4c.png)


请选择以下任何一个维度选项卡。


| 选项卡 | 说明 | 支持的引擎 | 
| --- | --- | --- | 
|  主要 SQL  |  当前正在运行的 SQL 语句  |  全部  | 
|  主要等待  |  数据库后端正在等待的事件  |  全部  | 
|  主要主机  |  所连接客户端的主机名  |  全部  | 
|  主要用户  |  登录到数据库的用户  |  全部  | 
|  主要数据库  |  客户端所连接的数据库的名称  |  仅限 PostgreSQL、MySQL、MariaDB 和 SQL Server  | 
|  主要应用程序  |  连接到数据库的应用程序的名称  |  仅限 PostgreSQL 和 SQL Server  | 
|  主要会话类型  |  当前会话的类型  | 仅限 PostgreSQL | 

要了解如何使用 **Top SQL**（主要 SQL）选项卡分析查询，请参阅 [“Top SQL”（主要 SQL）选项卡概览](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.md#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL)。

# 访问性能详情控制面板
<a name="USER_PerfInsights.UsingDashboard.Opening"></a>

Amazon RDS 在性能详情控制面板中提供性能详情和 CloudWatch 指标的合并视图。

要访问性能详情控制面板，请使用以下过程。

**在 AWS 管理控制台中查看性能详情控制面板**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择**性能详情**。

1. 选择一个数据库实例。

   对于已开启性能详情的数据库实例，还可以通过选择数据库实例列表中的**会话**项目来访问控制面板。在**当前活动**下，**会话**项目显示在过去五分钟内平均活跃会话中的数据库负载。条形图显示负载量。当条形图为空时，数据库实例处于空闲状态。随着负载的增加，条形图会以蓝色填充。当负载超过数据库实例类上的虚拟 CPU (vCPU) 数量时，条形图变为红色，表示可能出现瓶颈。  
![\[筛选指标\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_0a.png)

1. （可选）在右上角选择日期或时间范围，并指定不同的相对或绝对时间间隔。现在，您可以指定时间段，并生成数据库性能分析报告。该报告提供了已发现的见解和建议。有关更多信息，请参阅 [在性能详情中创建性能分析报告](USER_PerfInsights.UsingDashboard.AnalyzePerformanceTimePeriod.md)。  
![\[按时间间隔筛选指标\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_0c.png)

   在以下屏幕截图中，数据库负载间隔为 5 小时。  
![\[将时间间隔设置为 5 小时\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_1.png)

1. （可选）要放大数据库负载图表的一部分，请选择开始时间并拖动到所需时间段的结尾。

   所选区域将在数据库负载图表中突出显示。  
![\[指定时间间隔内的数据库负载\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_zoom_in.png)

   释放鼠标时，数据库负载图表上的所选 AWS将放大，并重新计算 **Top *dimensions***（热门维度）表。  
![\[放大选定的数据库负载\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_zoom_in_b.png)

1. （可选）要自动刷新数据，请选择**自动刷新**。  
![\[设置自动刷新\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_1b.png)

   性能详情控制面板自动用新数据进行刷新。刷新速率取决于所显示的数据量：
   + 5 分钟则每 10 秒刷新一次。
   + 1 小时则每 5 分钟刷新一次。
   + 5 小时则每 5 分钟刷新一次。
   + 24 小时则每 30 分钟刷新一次。
   + 1 周则每天刷新一次。
   + 1 个月则每天刷新一次。

# 按等待事件分析数据库负载
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad"></a>

如果**数据库负载**图表显示了一个瓶颈，您可以找出负载的来源。为此，请查看**数据库负载**图表下方的主要负载项目。选择特定项目 (如 SQL 查询或用户) 以深入了解该项目并查看有关该项目的详细信息。

按等待状态和主要 SQL 查询分组的数据库负载是默认 Performance Insights 控制面板视图，此组合通常提供了最多的性能问题见解。按等待状态分组的数据库负载显示了数据库中是否存在任何资源瓶颈或并发瓶颈。在这种情况下，“Top Load Items”表的 **SQL** 选项卡显示了增大该负载的查询。

诊断性能问题的典型工作流程如下：

1. 查看**数据库负载**图表并了解是否存在数据库负载的事件越过了 **Max CPU** 线。

1. 如果有，请查看**数据库负载**图表并确定负主要责任的等待状态。

1. 通过以下方式确定导致负载的摘要查询：查看“Top Load Items”表上的 **SQL** 选项卡中的哪个查询对于导致这些等待状态所起的作用最大。可通过 **DB Load by Wait (按等待状态排列的数据库负载)** 列加以识别。

1. 在 **SQL** 选项卡中选择这些摘要查询之一以展开它并查看它包含的子查询。

例如，在下面的控制面板中，**日志文件同步**等待状态占大部分数据库负载。**LGWR 所有工作线程组**等待状态也很高。**主要 SQL** 图表显示导致**日志文件同步**等待状态的内容：频繁的 `COMMIT` 语句。在这种情况下，降低提交频率将会减少数据库负载。

![\[日志文件同步错误\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_7.png)


# 分析一段时间内的数据库性能
<a name="USER_PerfInsights.UsingDashboard.AnalyzePerformanceTimePeriod"></a>

通过创建一段时间的性能分析报告，可以通过按需分析来分析数据库性能。可以查看性能分析报告，发现任何性能问题，例如资源瓶颈或数据库实例中的查询更改。Performance Insights 控制面板支持您选择时间段并创建性能分析报告。您还可以向报告添加一个或多个标签。

要使用此功能，您必须使用付费套餐保留期。有关更多信息，请参阅 [性能详情的定价和数据留存](USER_PerfInsights.Overview.cost.md)

该报告可供在**性能分析报告 - 新增**选项卡中进行选择和查看。该报告包含见解、相关指标和解决性能问题的建议。在 Performance Insights 保留期内，该报告可供查看。

如果报告分析时段的开始时间在保留期之外，则报告将被删除。您也可以在保留期结束之前删除报告。

要检测性能问题并为数据库实例生成分析报告，必须开启 Performance Insights。有关开启 Performance Insights 的更多信息，请参阅[为 Amazon RDS 打开和关闭性能详情](USER_PerfInsights.Enabling.md)。

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

在以下各节中，您可以创建、查看、删除性能分析报告和向其中添加标签。

**Topics**
+ [在性能详情中创建性能分析报告](USER_PerfInsights.UsingDashboard.CreatingPerfAnlysisReport.md)
+ [在性能详情中查看性能分析报告](USER_PerfInsights.UsingDashboard.ViewPerfAnalysisReport.md)
+ [在性能详情中向性能分析报告添加标签](USER_PerfInsights.UsingDashboard.ManagePerfAnalysisReportTags.md)
+ [在性能详情中删除性能分析报告](USER_PerfInsights.UsingDashboard.DeletePerfAnalysisReport.md)

# 在性能详情中创建性能分析报告
<a name="USER_PerfInsights.UsingDashboard.CreatingPerfAnlysisReport"></a>

您可以在 Performance Insights 控制面板中创建特定时段的性能分析报告。您可以选择一个时间段并将一个或多个标签添加到分析报告中。

分析时段从 5 分钟到 6 天不等。在分析开始之前，必须有至少 24 小时的性能数据。

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

**创建一段时间内的性能分析报告**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择**性能详情**。

1. 选择一个数据库实例。

1. 在性能详情控制面板上的**数据库负载**部分中选择**分析性能**。

   将显示用于设置时间段和向性能分析报告中添加一个或多个标签的字段。  
![\[显示用于创建分析报告的字段的 Performance Insights 控制面板\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI_CreateAnalysisReport.png)

1. 选择时间段。如果在右上角的**相对范围**或**绝对范围**中设置时间段，您只能输入或选择该时间段内的分析报告日期和时间。如果您选择该时间段之外的分析时段，则会显示一条错误消息。

    要设置时间段，您可以执行以下任一操作：
   + 按下并拖动数据库负载图表上的任何滑块。

     **性能分析时段**框显示选定的时间段，数据库负载图表突出显示选定的时间段。
   + 在**性能分析期**框中，选择**开始日期**、**开始时间**、**结束日期**以及**结束时间**。  
![\[已选择分析时段的 Performance Insights 控制面板\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI_CreateAnalysisRep_TimePeriod.png)

1. （可选）输入**键**和**值 - *可选***，以便为报告添加标签。  
![\[包含用于添加新标签的字段的 Performance Insights 控制面板\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI_CreateAnalysisRep_AddTag.png)

1. 选择**分析性能**。

   无论报告生成是成功还是失败，横幅都会显示一条消息。该消息还提供了查看报告的链接。

   以下示例显示了带有报告创建成功消息的横幅。  
![\[分析报告成功创建消息横幅\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI_CreateAnaysisRep_SuccessMsg.png)

   该报告可供在**性能分析报告 - 新增**选项卡中查看。

您可以使用 AWS CLI 创建性能分析报告。有关如何使用 AWS CLI 创建报告的示例，请参阅[创建一段时间的性能分析报告](USER_PerfInsights.API.Examples.md#USER_PerfInsights.API.Examples.CreatePerfAnalysisReport)。

# 在性能详情中查看性能分析报告
<a name="USER_PerfInsights.UsingDashboard.ViewPerfAnalysisReport"></a>

**性能分析报告 - 新增**选项卡列出了为数据库实例创建的所有报告。对于每个报告，显示以下内容：
+ **ID**：报告的唯一标识符。
+ **名称**：添加到报告中的标签键。
+ **报告创建时间**：您创建报告的时间。
+ **分析开始时间**：报告中分析的开始时间。
+ **分析结束时间**：报告中分析的结束时间。

**查看性能分析报告**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择**性能详情**。

1. 选择要查看其分析报告的数据库实例。

1. 在性能详情控制面板中，向下滚动并选择**性能分析报告 - 新增**选项卡。

   将显示不同时间段的所有分析报告。

1. 选择您要查看的报告的 **ID**。

   如果确定了多个见解，则原定设置情况下，数据库负载图表会显示整个分析时段。如果报告确定了一个见解，则原定设置情况下，数据库负载图表会显示该见解。

   控制面板还在**标签**部分中列出了报告的标签。

   以下示例显示了报告的整个分析时段。  
![\[显示整个分析报告时段的数据库负载图表\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI_EntireAnalysisRep.png)

1. 如果在报告中发现多个见解，请在**数据库负载见解**列表中选择要查看的见解。

   控制面板显示见解消息、数据库负载图表（突出显示见解的时间段、分析和建议）以及报告标签列表。

   以下示例显示了报告中的数据库负载见解。  
![\[显示报告中的见解的数据库负载图表\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI_AnalysisRepInsight_chart.png)  
![\[报告见解分析和建议部分\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI_AnalysisRepInsight_Recommendations.png)

# 在性能详情中向性能分析报告添加标签
<a name="USER_PerfInsights.UsingDashboard.ManagePerfAnalysisReportTags"></a>

您可以在创建或查看报告时添加标签。您最多可以为一个报告添加 50 个标签。

您需要权限才能添加标签。有关 Performance Insights 的访问策略的更多信息，请参阅[为 Performance Insights 配置访问策略](USER_PerfInsights.access-control.md)。

要在创建报告时添加一个或多个标签，请参阅过程[在性能详情中创建性能分析报告](USER_PerfInsights.UsingDashboard.CreatingPerfAnlysisReport.md)中的步骤 6。

**在查看报告时添加一个或多个标签**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择**性能详情**。

1. 选择一个数据库实例。

   将显示该数据库实例的 Performance Insights 控制面板。

1. 向下滚动并选择**性能分析报告 - 新增**选项卡。

1. 选择要为其添加标签的报告。

   控制面板显示报告。

1. 向下滚动到**标签**，然后选择**管理标签**。

1. 选择**添加新标签**。

1. 输入**键**和**值 - *可选***，然后选择**添加新标签**。

   以下示例提供了为所选报告添加新标签的选项。  
![\[用于向报告添加新标签的“管理标签”窗口\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI_AddTag_ManageTags.png)

   为报告创建了一个新标签。

   报告的标签列表显示在控制面板上的**标签**部分。如果您想从报告中删除标签，请选择标签旁边的**移除**。

# 在性能详情中删除性能分析报告
<a name="USER_PerfInsights.UsingDashboard.DeletePerfAnalysisReport"></a>

您可以从**性能分析报告**选项卡中显示的报告列表中删除报告，也可以在查看报告时删除报告。

**删除报告**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择**性能详情**。

1. 选择一个数据库实例。

   将显示该数据库实例的 Performance Insights 控制面板。

1. 向下滚动并选择**性能分析报告 - 新增**选项卡。

1. 选择要删除的报告，然后选择右上角的**删除**。  
![\[Performance Insights 控制面板，其中选择了要删除的报告\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI_DeleteAnalysisRep.png)

   将显示一个确认窗口。选择确认后，将删除报告。

1. （可选）选择您要删除的报告的 **ID**。

   在报告页面中，选择右上角的**删除**。

   将显示一个确认窗口。选择确认后，将删除报告。

# 使用性能详情中的“主要 SQL”选项卡分析查询
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics"></a>

在 Amazon RDS Performance Insights 控制面板中，您可以在 **Top dimensions**（主要维度）表中的 **Top SQL**（主要 SQL）选项卡下找到有关运行中查询和最近查询的信息。您可以使用此信息来优化查询。

**Topics**
+ [“Top SQL”（主要 SQL）选项卡概览](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL)
+ [在 Performance Insights 控制面板中访问更多 SQL 文本](USER_PerfInsights.UsingDashboard.SQLTextSize.md)
+ [在 Performance Insights 控制面板中查看 SQL 统计数据](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.AnalyzingSQLLevel.md)

## “Top SQL”（主要 SQL）选项卡概览
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL"></a>

原定设置情况下，**Top SQL**（主要 SQL）选项卡将显示对数据库负载影响最大的 25 个 SQL 查询。为了帮助优化查询，您可以分析查询文本和 SQL 统计数据等信息。您还可以选择想要显示在 **Top SQL**（主要 SQL）选项卡中的统计数据。

**Topics**
+ [SQL 文本](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.text)
+ [SQL 统计数据](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.statistics)
+ [按等待状态排列的负载 (AAS)](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.Load-by-waits)
+ [查看 SQL 信息](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.SQL-information)
+ [选择统计数据首选项](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.Preferences)

### SQL 文本
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.text"></a>

原定设置情况下，**Top SQL**（主要 SQL）表中的每行为每条语句显示 500 字节的文本。

![\[SQL 文本\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/sql-text-oracle.png)


要了解如何查看超过默认 500 字节的 SQL 文本，请参阅[在 Performance Insights 控制面板中访问更多 SQL 文本](USER_PerfInsights.UsingDashboard.SQLTextSize.md)。

*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 语句，请选择查询，然后选择加号 (\$1)。在以下示例中，所选查询为摘要。

![\[选定的 SQL 摘要\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_4b.png)


**注意**  
SQL 摘要将相似的 SQL 语句进行分组，但不会编辑敏感信息。

Performance Insights 可以将 Oracle SQL 文本显示为 **Unknown**（未知）。文本会在以下情况下具有此状态：
+ 除 `SYS` 以外的 Oracle 数据库用户处于活动状态，但当前未执行 SQL。例如，当并行查询完成时，查询协调器将等待帮助程序进程发送会话统计数据。在等待期间，查询文本将显示 **Unknown**（未知）。
+ 对于标准版 2 上的 RDS for Oracle 实例，Oracle 资源管理器会限制并行线程的数量。执行此工作的后台进程会导致查询文本显示为 **Unknown**（未知）。

### SQL 统计数据
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.statistics"></a>

*SQL 统计数据*是关于 SQL 查询的性能相关指标。例如，性能详情可能会显示每秒执行数或每秒处理的行数。性能详情仅收集最常见查询的统计数据。通常，它们与 Performance Insights 控制面板中显示的按负载列出的主要查询匹配。

**Top SQL**（主要 SQL）表中的每一行显示了 SQL 语句或摘要的相关统计数据，如以下示例所示。

![\[主要 SQL\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_4.png)


Performance Insights 可以报告 SQL 统计数据的 `0.00` 和 `-`（未知）。这种情况在以下条件下发生：
+ 只存在一个样本。例如，Performance Insights 根据 `pg_stat_statements` 视图的多个样本，计算 RDS PostgreSQL 的更改速率。当工作负载运行时间较短时，Performance Insights 可能只收集一个样本，这意味着它无法计算更改速率。未知值用短划线 (`-`) 表示。
+ 两个样本具有相同的值。由于未发生更改，Performance Insights 无法计算更改速率，因此它将速率报告为 `0.00`。
+ RDS PostgreSQL 语句缺乏有效的标识符。PostgreSQL 仅在解析和分析之后才会为语句创建标识符。因此，语句可以存在于 PostgreSQL 内部内存结构中，而无需标识符。由于 Performance Insights 每秒对内部内存结构进行一次采样，因此低延迟查询可能只出现在单个样本中。如果查询标识符对该样本不可用，则 Performance Insights 无法将此语句与其统计数据进行关联。未知值用短划线 (`-`) 表示。

有关 Amazon RDS 引擎的 SQL 统计数据的说明，请参阅 [Performance Insights 的 SQL 统计数据](sql-statistics.md)。

### 按等待状态排列的负载 (AAS)
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.Load-by-waits"></a>

在 **Top SQL**（主要 SQL）中，**按等待状态排列的负载 (AAS)** 列说明了与每个主要负载项目关联的数据库负载的百分比。此列按当前在**数据库负载图表**中选择的分组方式反映该项目的负载。有关平均活动会话数（AAS）的更多信息，请参阅[平均活动会话数](USER_PerfInsights.Overview.ActiveSessions.md#USER_PerfInsights.Overview.ActiveSessions.AAS)。

例如，您可以按等待状态对**数据库负载**图表进行分组。您可以检查主要负载项目表中的 SQL 查询。在这种情况下，系统将对 **DB Load by Waits (按等待状态排列的数据库负载)** 栏进行大小调整、分段和颜色编码，以显示该查询在导致给定等待状态方面所起的作用大小，它还会显示哪些等待状态正在影响选定的查询。

![\[按等待状态排列的数据库负载\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_6.png)


### 查看 SQL 信息
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.SQL-information"></a>

在 **Top SQL**（主要 SQL）表中，您可以打开一条语句以查看其信息。信息将显示在底部窗格中。

![\[选定文本查询的“主要 SQL”表\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-sql-ids-open.png)


与 SQL 语句关联的以下类型的标识符 (ID)：
+ **支持 SQL ID** – SQL ID 的哈希值。此值仅用于当您处理 AWS Support 时引用 SQL ID。AWSSupport 无法访问您实际的 SQL ID 和 SQL 文本。
+ **支持摘要 ID** – 摘要 ID 的哈希值。此值仅用于当您处理 AWS Support 时引用摘要 ID。AWSSupport 无法访问您实际的摘要 ID 和 SQL 文本。

### 选择统计数据首选项
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.Preferences"></a>

您可以通过选择 **Preferences**（首选项）图标来控制 **Top SQL**（主要 SQL）选项卡中显示的统计数据。

![\[统计数据首选项\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-sql-ids-preferences-icon.png)


当您选择 **Preferences (首选项)** 图标时，**Preferences (首选项)** 窗口将打开。以下屏幕截图是 **Preferences**（首选项）窗口的示例。

![\[“首选项”窗口\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-sql-ids-preferences.png)


要启用您希望在 **Top SQL**（主要 SQL）选项卡中显示的统计数据，请使用鼠标滚动到窗口底部，然后选择 **Continue**（继续）。

有关 Amazon RDS 引擎每秒或每次调用统计数据的更多信息，请参阅[Performance Insights 的 SQL 统计数据](sql-statistics.md)中引擎特定的 SQL 统计数据部分

# 在 Performance Insights 控制面板中访问更多 SQL 文本
<a name="USER_PerfInsights.UsingDashboard.SQLTextSize"></a>

预设情况下，**Top SQL**（主要 SQL）表中的每行为每个 SQL 语句显示 500 字节的 SQL 文本。

![\[500 字节的 SQL\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-top-sql-bytes.png)


当 SQL 语句超过 500 字节时，您可以在 **Top SQL**（主要 SQL）表下的 **SQL text**（SQL 文本）部分中查看更多文本。在这种情况下，**SQL text**（SQL 文本）中显示的文本的最大长度为 4KB。此限制由控制台引入，并受数据库引擎设置的限制的约束。要保存 **SQL text**（SQL 文本）中显示的文本，请选择 **Download**（下载）。

**Topics**
+ [Amazon RDS 引擎 的文本大小限制](#sql-text-engine-limits)
+ [为 Amazon RDS for PostgreSQL 数据库实例设置 SQL 文本限制](USER_PerfInsights.UsingDashboard.SQLTextLimit.md)
+ [在 Performance Insights 控制面板中查看和下载 SQL 文本](view-download-text.md)

## Amazon RDS 引擎 的文本大小限制
<a name="sql-text-engine-limits"></a>

下载 SQL 文本时，数据库引擎将确定文本的最大长度。您可以下载最多为以下每个引擎限制的 SQL 文本。


| 数据库引擎 | 已下载文本的最大长度 | 
| --- | --- | 
| Amazon RDS for MySQL 和 MariaDB | 当启用性能架构时，长度固定为 4096 字节。如果未启用性能架构，则长度固定为 65535 字节。 | 
| Amazon RDS for Microsoft SQL Server | 4,096 个字符 | 
| Amazon RDS for Oracle | 1,000 字节 | 

性能详情控制台的 **SQL text**（SQL 文本）部分最多显示引擎返回的最大长度的文本。例如，如果 MySQL 最多返回 1 KB 到 Performance Insights，则只能收集并显示 1 KB，即使原始查询较大。因此，当您在 **SQL text**（SQL 文本）中查看查询或下载查询时，性能详情将返回相同的字节数。

如果您使用 AWS CLI 或 API，则性能详情没有控制台强制实施的 4KB 限制。`DescribeDimensionKeys` 和 `GetResourceMetrics` 返回最多 500 字节。

**注意**  
`GetDimensionKeyDetails` 将返回完整的查询，但大小受引擎限制约束。

# 为 Amazon RDS for PostgreSQL 数据库实例设置 SQL 文本限制
<a name="USER_PerfInsights.UsingDashboard.SQLTextLimit"></a>

Amazon RDS for PostgreSQL 以不同的方式处理文本。您可以使用数据库实例参数 `track_activity_query_size` 设置文本大小限制。该参数具有以下特征：

默认文本大小  
在 Amazon RDS for PostgreSQL 版本 9.6 中，`track_activity_query_size` 参数的默认设置为 1024 字节。在 Amazon RDS for PostgreSQL 版本 10 或更高版本中，默认值为 4096 字节。

最大文本大小  
对于 Amazon RDS for PostgreSQL 版本 12 及更低版本，`track_activity_query_size` 的限制为 102400 字节。版本 13 及更高版本的最大值为 1 MB。  
如果引擎返回 1 MB 至 Performance Insights，则控制台仅显示前 4 KB。如果您下载查询，您将得到完整的 1 MB。在这种情况下，查看和下载返回不同的字节数。有关 `track_activity_query_size` 数据库实例参数的更多信息，请参阅 PostgreSQL 文档中的[运行时统计数据](https://www.postgresql.org/docs/current/runtime-config-statistics.html)。

要增加 SQL 文本大小，请增加 `track_activity_query_size` 限制。要修改参数，请更改与 Amazon RDS for PostgreSQL 数据库实例关联的参数组中的参数设置。

**在实例使用默认参数组时更改设置**

1. 为相应数据库引擎和数据库引擎版本创建新的数据库实例参数组。

1. 在新参数组中设置参数。

1. 将新参数组与数据库实例相关联。

有关设置数据库实例参数的信息，请参阅 [在 Amazon RDS 中修改数据库参数组中的参数](USER_WorkingWithParamGroups.Modifying.md)。

# 在 Performance Insights 控制面板中查看和下载 SQL 文本
<a name="view-download-text"></a>

在 Performance Insights 控制面板中，您可以查看或下载 SQL 文本。

**在 Performance Insights 控制面板中查看更多 SQL 文本**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，选择 **Performance Insights**。

1. 选择一个数据库实例。

1. 在性能详情控制面板中向下滚动到**主要 SQL** 选项卡。

1. 选择加号来展开 SQL 摘要，然后选择该摘要的子查询之一。

   具有大于 500 字节的文本的 SQL 语句如下图所示。  
![\[具有大文本的 SQL 语句\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-large-text-1.png)

1. 向下滚动至 **SQL text**（SQL 文本）选项卡。  
![\[SQL 信息部分显示更多 SQL 文本\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-large-text-2.png)

   Performance Insights 控制面板可以为每个 SQL 语句最多显示 4096 字节。

1. （可选）选择**复制**来复制所显示的 SQL 语句，或选择**下载**来下载 SQL 语句以查看不超过数据库引擎限制的 SQL 文本。
**注意**  
要复制或下载 SQL 语句，请禁用弹出窗口阻止程序。

# 在 Performance Insights 控制面板中查看 SQL 统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.AnalyzingSQLLevel"></a>

在 Performance Insights 控制面板中，SQL 统计数据可在 **Database load**（数据库负载）图表的 **Top SQL**（主要 SQL）选项卡中找到。

**查看 SQL 统计数据**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择 **Performance Insights**。

1. 在页面顶部，选择要查看 SQL 统计数据的数据库。

1. 滚动到页面底部并选择 **Top SQL**（主要 SQL）选项卡。

1. 选择单独的语句或摘要查询。  
![\[查看正在运行的查询的指标\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_per_sql_sql.png)

1. 通过选择图表右上角的齿轮图标来选择要显示的统计数据。有关 Amazon RDS 引擎的 SQL 统计数据的说明，请参阅 [Performance Insights 的 SQL 统计数据](sql-statistics.md)。

   以下示例显示 Oracle 数据库实例的统计数据首选项。  
![\[用于运行 Oracle 数据库实例查询的指标的首选项\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_per_sql_pref_oracle.png)

   以下示例显示 MariaDB 和 MySQL 数据库实例的首选项。  
![\[用于运行 MariaDB 和 MySQL 数据库实例查询的指标的首选项。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_per_sql_pref_ams.png)

1. 选择“Save（保存）”以保存首选项。

   **Top SQL**（主要 SQL）表将刷新。

   以下示例显示 Oracle SQL 查询的统计数据。  
![\[SQL 查询的统计数据\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_per_sql_stats_oracle.png)

# 分析 Oracle 最大 PDB 负载
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.TopPDB"></a>

分析 Oracle 容器数据库（CDB）负载时，您可能想了解哪些可插拔数据库（PDB）对数据库负载的影响最大。您可能还希望比较运行类似查询的各个 PDB 的性能，以微调性能。有关 Oracle CDB 的更多信息，请参阅 [RDS for Oracle 数据库架构](oracle-multi-architecture.md)。

在 Amazon RDS Performance Insights 控制面板中，您可以在**维度**选项卡的**最大 PDB** 选项卡下查找有关可插拔数据库（PDB）的信息。

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

**分析 Oracle CDB 中的最大 PDB 负载**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择 **Performance Insights**。

1. 选择 Oracle CDB 实例。

   将显示该数据库实例的 Performance Insights 控制面板。

1. 在**数据库负载（DB 负载）**部分，选择“划分依据”旁边的**可插拔数据库（PDB）**。

   平均活动会话图表显示了负载最大的 PDB。PDB 标识符显示在彩色编码方块的右侧。每个标识符都唯一标识一个 PDB。  
![\[显示 PDB 负载的平均活动会话图表\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_topPDB_AAS.png)

1. 向下滚动至 **Top SQL**（热门 SQL）选项卡。

   在以下示例中，您可以查看相同的 SQL 查询及其驱动到多个 PDB 的负载。  
![\[多个 PDB 的 SQL 查询负载相同\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_topPDB_ex1.png)

   在以下示例中，单个 PDB 处理的负载高于 CDB 中的其他 PDB。  
![\[PDB 的 SQL 查询负载很高\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_topPDB_ex2.png)

   有关 Oracle CDB 的更多信息，请参阅 [CDB 和 PDB](https://docs.oracle.com/en/database/oracle/oracle-database/21/cncpt/CDBs-and-PDBs.html#GUID-FC2EB562-ED31-49EF-8707-C766B6FE66B8)。

# 使用 Amazon RDS 的性能详情控制面板分析执行计划
<a name="USER_PerfInsights.UsingDashboard.AnalyzingPlans"></a>

在 Amazon RDS 性能详情控制面板中，您可以找到有关 Oracle 和 SQL Server 数据库实例的执行计划的信息。您可以使用这些信息来了解哪些计划对数据库负载的贡献最大。

要分析 Oracle 或 SQL Server 执行计划，请参阅以下主题。

**分析执行计划**
+ [使用 Amazon RDS 的性能详情控制面板分析 Oracle 执行计划](USER_PerfInsights.UsingDashboard.AccessPlans.md)
+ [使用 Amazon RDS 的性能详情控制面板分析 SQL Server 执行计划](USER_PerfInsights.UsingDashboard.AccessPlansSqlServer.md)

## 分析 Amazon RDS 的执行计划概述
<a name="USER_PerfInsights.UsingDashboard.AnalyzingPlans.Overview"></a>

您可以使用 Amazon RDS 性能详情控制面板，来了解哪些计划对 Oracle 和 SQL Server 数据库实例的数据库负载贡献最大。

 例如，给定时间的主要 SQL 语句可能正在使用下表所示的计划。


****  

| 主要 SQL | 规划 | 
| --- | --- | 
|  SELECT SUM(amount\$1sold) FROM sales WHERE prod\$1id = 10  |  计划 A  | 
|  SELECT SUM(amount\$1sold) FROM sales WHERE prod\$1id = 521  |  计划 B  | 
|  SELECT SUM(s\$1total) FROM sales WHERE region = 10  |  计划 A  | 
|  SELECT \$1 FROM emp WHERE emp\$1id = 1000  |  计划 C  | 
|  SELECT SUM(amount\$1sold) FROM sales WHERE prod\$1id = 72  |  计划 A  | 

使用 Performance Insights 的计划功能，您可以执行以下操作：
+ 了解主要 SQL 查询使用哪些计划。

  例如，您可能会发现，大多数数据库负载是由使用计划 A 和计划 B 的查询生成的，只有很小一部分查询使用计划 C。
+ 比较同一查询的不同计划。

  在前面的示例中，除产品 ID 外，三个查询都相同。其中两个查询使用计划 A，另一个查询使用计划 B。若要查看两个计划的差异，您可以使用 Performance Insights。
+ 了解查询何时切换到新计划。

  您可能会看到查询使用了计划 A，然后在某个时间切换到计划 B。此时数据库是否发生了变化？ 例如，如果表为空，优化程序可能会选择全表扫描。如果表加载了一百万行，优化程序可能会切换至索引范围扫描。
+ 深入了解成本最高的计划的具体步骤。

  例如，对于长时间运行的查询，可能会在 equi-join 中显示缺少联接条件。此缺失条件会强制进行笛卡尔联接，将两个表的所有行联接起来。

您可以使用 Performance Insights 的计划捕获功能来执行上述任务。正如您可以按等待事件和主要 SQL 对查询进行切片一样，您也可以按计划维度对查询进行切片。

# 使用 Amazon RDS 的性能详情控制面板分析 Oracle 执行计划
<a name="USER_PerfInsights.UsingDashboard.AccessPlans"></a>

分析 Oracle Database 上的数据库负载时，您可能想了解哪些计划对数据库负载的影响最大。您可以使用性能详情的计划捕获特征，来确定哪些计划对数据库负载的贡献最大。

**使用控制台分析 Oracle 执行计划**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，选择**性能详情**。

1. 选择 Oracle 数据库实例。将为该数据库实例显示 Performance Insights 控制面板。

1. 在 **Database load (DB load)**（数据库负载）部分，选择 **Slice by**（切片依据）旁边的 **Plans**（计划）。

   平均活动会话图表显示了主要 SQL 语句使用的计划。计划哈希值显示在彩色方块的右侧。每个哈希值唯一标识每个计划。  
![\[按计划切片\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/pi-slice-by-plans.png)

1. 向下滚动至 **Top SQL**（主要 SQL）选项卡。

   在以下示例中，主要 SQL 摘要具有两个计划。您可以通过语句中的问号来判断其是否为摘要。  
![\[选择摘要计划\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/top-sql-plans-unselected.png)

1. 选择摘要，将其扩展到其组件语句中。

   在以下示例中，`SELECT` 语句为摘要查询。摘要中的组件查询使用两种不同的计划。计划的颜色对应于数据库负载图表。摘要中的计划总数在显示第二列。  
![\[选择摘要计划\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/pi-digest-plan.png)

1. 向下滚动，然后从 **Plans for digest query**（摘要查询计划）列表中选择两个要比较的 **Plans**（计划）。

   您可以一次查看一个或两个查询计划。以下屏幕截图比较了摘要中的两个计划，哈希值分别为 2032253151 和 1117438016。在以下示例中，运行此摘要查询的平均活动会话中有 62% 使用左侧的计划，而 38% 使用右侧的计划。  
![\[并排比较计划\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/pi-compare-plan.png)

   在此示例中，两个计划存在明显不同。计划 2032253151 中的步骤 2 使用索引扫描，计划 1117438016 中的步骤 2 使用全表扫描。对于具有大量行的表，使用索引扫描对单行进行查询通常更快。  
![\[并排比较计划\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/pi-table-access.png)

1. （可选）选择 **Copy**（复制）将计划复制到剪贴板，或者选择 **Download**（下载）将计划保存到硬盘。

# 使用 Amazon RDS 的性能详情控制面板分析 SQL Server 执行计划
<a name="USER_PerfInsights.UsingDashboard.AccessPlansSqlServer"></a>

分析 SQL Server 数据库上的数据库负载时，您可能想了解哪些计划对数据库负载的贡献最大。您可以使用性能详情的计划捕获特征，来确定哪些计划对数据库负载的贡献最大。

**使用控制台分析 SQL Server 执行计划**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，选择**性能详情**。

1. 选择 SQL Server 数据库实例。将为该数据库实例显示 Performance Insights 控制面板。

1. 在 **Database load (DB load)**（数据库负载）部分，选择 **Slice by**（切片依据）旁边的 **Plans**（计划）。

   平均活动会话图表显示了主要 SQL 语句使用的计划。计划哈希值显示在彩色方块的右侧。每个哈希值唯一标识每个计划。  
![\[按计划切片\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/pi-slice-by-plans-sqlserver.png)

1. 向下滚动至 **Top SQL**（主要 SQL）选项卡。

   在以下示例中，主要 SQL 摘要具有三个计划。SQL 语句中存在问号表示该语句是摘要。要查看完整的 SQL 语句，请在 **SQL 语句**列中选择一个值。  
![\[选择摘要计划\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/top-sql-plans-unselected-sqlserver.png)

1. 选择摘要，将其扩展到其组件语句中。

   在以下示例中，`SELECT` 语句为摘要查询。摘要中的组件查询使用三种不同的执行计划。分配给计划的颜色对应于数据库负载图表。  
![\[选择摘要计划\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/pi-digest-plan-sqlserver.png)

1. 向下滚动，然后从 **Plans for digest query**（摘要查询计划）列表中选择两个要比较的 **Plans**（计划）。

   您可以一次查看一个或两个查询计划。以下屏幕截图比较了摘要中的两个计划。在以下示例中，运行此摘要查询的平均活动会话中有 40% 使用左侧的计划，而 28% 使用右侧的计划。  
![\[并排比较计划\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/pi-compare-plan-sqlserver.png)

   在前面的示例中，这些计划在一个重要方面有所不同。左侧计划中的步骤 2 使用表扫描，而右侧的计划使用聚集索引扫描。对于具有大量行的表，使用聚集索引扫描，检索单行的查询几乎总是更快。

1. （可选）选择“计划详细信息”表上的**设置**图标来自定义列的可见性和顺序。以下屏幕截图显示了“计划详细信息”表，其第二列是**输出列表**列。  
![\[自定义“计划详细信息”表中各列的可见性和顺序\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/pi-plan-fields-sql-server.png)

1. （可选）选择 **Copy**（复制）将计划复制到剪贴板，或者选择 **Download**（下载）将计划保存到硬盘。

**注意**  
性能详情使用分层树表来显示估计的执行计划。该表包括每条语句的部分执行信息。有关“计划详细信息”表中各列的更多信息，请参阅 SQL Server 文档中的 [SET SHOWPLAN\$1ALL](https://learn.microsoft.com/en-us/sql/t-sql/statements/set-showplan-all-transact-sql)。要显示估计的执行计划的完整执行信息，请选择**下载**来下载该计划，然后将该计划上传到 SQL Server Management Studio。有关使用 SQL Server Management Studio 显示估计的执行计划的更多信息，请参阅 SQL Server 文档中的[显示估计的执行计划](https://learn.microsoft.com/en-us/sql/relational-databases/performance/display-the-estimated-execution-plan)。

# 查看性能详情主动建议
<a name="USER_PerfInsights.InsightsRecommendationViewDetails"></a>

Amazon RDS 性能详情可监控特定指标，并自动通过分析指定资源可能存在问题的级别来创建阈值。当新的指标值在给定时间段内超过预定义的阈值时，性能详情会生成主动建议。此建议有助于防止数据库性能将来受到影响。要获得这些主动建议，您必须开启性能详情，并设置付费套餐保留期。

有关开启 Performance Insights 的更多信息，请参阅[为 Amazon RDS 打开和关闭性能详情](USER_PerfInsights.Enabling.md)。有关性能详情的定价和数据留存的更多信息，请参阅[性能详情的定价和数据留存](USER_PerfInsights.Overview.cost.md)。

要了解主动建议支持的区域、数据库引擎和实例类别，请参阅[支持性能详情功能的 Amazon RDS 数据库引擎、区域和实例类](USER_PerfInsights.Overview.Engines.md#USER_PerfInsights.Overview.PIfeatureEngnRegSupport)。

您可以在建议详细信息页面中查看主动建议的详细分析和建议的调查。

有关建议的更多信息，请参阅 [来自 Amazon RDS 的建议](monitoring-recommendations.md)。

**查看主动建议的详细分析**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，执行以下任何一项操作：
   + 选择**建议**。

     **建议**页面显示按您账户中所有资源的严重性排序的建议列表。
   + 选择**数据库**，然后在数据库页中为资源选择**建议**。

     **建议**选项卡显示所选资源的建议及其详细信息。

1. 查找主动建议，然后选择**查看详细信息**。

   此时会显示建议详细信息页面。标题提供了受影响资源的名称以及检测到的问题和严重性。

   以下是建议详细信息页面上的组件：
   + **建议摘要** - 检测到的问题、建议和问题状态、问题开始和结束时间、建议修改时间以及引擎类型。  
![\[控制台中显示“建议摘要”部分的主动建议的“建议详细信息”页面\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/RecommendationProactive-RecSummary.png)
   + **指标** - 检测到的问题的图表。每个图表都显示由资源的基线行为确定的阈值，以及从问题开始时间报告的指标数据。  
![\[控制台中显示“指标”部分的主动建议的“建议详细信息”页面\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/RecommedationProactive_Metrics.png)
   + **分析和建议** - 建议和所提建议的理由。  
![\[控制台中显示“分析和建议”部分的主动建议的“建议详细信息”页面\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/ProactiveRecommendation-AnalysisAndRec.png)

   您可以查看问题的原因，然后执行建议的操作来解决问题，或者选择右上角的**忽略**来忽略建议。

# 使用 Performance Insights API for Amazon RDS 检索指标
<a name="USER_PerfInsights.API"></a>

开启性能详情后，API 将提供实例性能的可见性。Amazon CloudWatch Logs 日志为AWS服务提供售卖监控指标的权威源。

Performance Insights 提供了按平均活动会话 (AAS) 衡量的数据库负载的特定于域的视图。对 API 使用者而言，此指标看起来像是二维时间序列数据集。数据的时间维度提供所查询时间范围的每个时间点的数据库负载数据。每个时间点将分解与所请求维度相关的整体负载，如相应时间点测量的 `SQL`、`Wait-event`、`User` 或 `Host`。

Amazon RDS Performance Insights 用于监控您的 Amazon RDS 数据库实例，使您可以分析数据库性能和排查数据库性能问题。查看 Performance Insights 数据的一种方法是在 AWS 管理控制台中。Performance Insights 还提供公有 API，以便您可以查询自己的数据。您可以使用 API 来执行以下操作：
+ 将数据卸载到数据库中
+ 将 Performance Insights 数据添加到现有监控控制面板
+ 构建监控工具

要使用 Performance Insights API，请在您的 Amazon RDS 数据库实例之一上启用 Performance Insights。有关启用 Performance Insights 的信息，请参阅 [为 Amazon RDS 打开和关闭性能详情](USER_PerfInsights.Enabling.md)。有关 Performance Insights API 的更多信息，请参阅 [Amazon RDS Performance Insights API 参考](https://docs.aws.amazon.com/performance-insights/latest/APIReference/Welcome.html)。

Performance Insights API 提供以下操作。


****  

|  Performance Insights 操作  |  AWS CLI command  |  描述  | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_CreatePerformanceAnalysisReport.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_CreatePerformanceAnalysisReport.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/CreatePerformanceAnalysisReport.html](https://docs.aws.amazon.com/cli/latest/reference/pi/CreatePerformanceAnalysisReport.html)  |  为数据库实例创建特定时间段的性能分析报告。结果为 `AnalysisReportId`，这是报告的唯一标识符。  | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DeletePerformanceAnalysisReport.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DeletePerformanceAnalysisReport.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/DeletePerformanceAnalysisReport.html](https://docs.aws.amazon.com/cli/latest/reference/pi/DeletePerformanceAnalysisReport.html)  |  删除性能分析报告。  | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DescribeDimensionKeys.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DescribeDimensionKeys.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/describe-dimension-keys.html](https://docs.aws.amazon.com/cli/latest/reference/pi/describe-dimension-keys.html)  |  对于特定的时间段，检索指标的前 N 个维度键。  | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetDimensionKeyDetails.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetDimensionKeyDetails.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/get-dimension-key-details.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-dimension-key-details.html)  |  检索数据库实例或数据源的指定维度组的属性。例如，如果您指定了 SQL ID，并且有维度详细信息，则 `GetDimensionKeyDetails` 将检索与此 ID 关联的维度 `db.sql.statement` 的全文。此操作很有用，因为 `GetResourceMetrics` 和 `DescribeDimensionKeys` 不支持检索大型 SQL 语句文本。  | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetPerformanceAnalysisReport.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetPerformanceAnalysisReport.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/GetPerformanceAnalysisReport.html](https://docs.aws.amazon.com/cli/latest/reference/pi/GetPerformanceAnalysisReport.html)  |  检索报告，包括报告的见解。结果包括报告状态、报告 ID、报告时间详情、见解和建议。  | 
| [GetResourceMetadata](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetResourceMetadata.html) |  [https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metadata.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metadata.html)  |  检索不同功能的元数据。例如，元数据可以表明特定数据库实例上的某个功能已打开或关闭。  | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetResourceMetrics.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetResourceMetrics.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html)  |  检索一组数据来源在一段时间内的 Performance Insights 指标。您可以提供特定维度组和维度，并为每个组提供聚合和筛选条件。  | 
| [ListAvailableResourceDimensions](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_ListAvailableResourceDimensions.html) |  [https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-dimensions.html](https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-dimensions.html)  |  检索特定实例上每个特定指标类型可查询的维度。  | 
| [ListAvailableResourceMetrics](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_ListAvailableResourceMetrics.html) |  [https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-metrics.html](https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-metrics.html)  |  检索指定指标类型的所有可用指标，指定数据库实例可用该指标进行查询。  | 
|  `[ListPerformanceAnalysisReports](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_ListPerformanceAnalysisReports.html)` |  [https://docs.aws.amazon.com/cli/latest/reference/pi/list-performance-analysis-reports.html](https://docs.aws.amazon.com/cli/latest/reference/pi/list-performance-analysis-reports.html)  | 检索数据库实例的所有可用分析报告。这些报告根据每个报告的开始时间列出。 | 
|  `[ListTagsForResource](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_ListTagsForResource.html)` |  [https://docs.aws.amazon.com/cli/latest/reference/pi/list-tags-for-resource.html](https://docs.aws.amazon.com/cli/latest/reference/pi/list-tags-for-resource.html)  |  列出添加到资源的所有元数据标签。该列表包含标签的名称和值。  | 
|  `[TagResource](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_TagResource.html)` |  [https://docs.aws.amazon.com/cli/latest/reference/pi/tag-resource.html](https://docs.aws.amazon.com/cli/latest/reference/pi/tag-resource.html)  |  将元数据标签添加到 Amazon RDS 资源中。该标签包含名称和值。  | 
|  `[UntagResource](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_UntagResource.html)` |  [https://docs.aws.amazon.com/cli/latest/reference/pi/untag-resource.html](https://docs.aws.amazon.com/cli/latest/reference/pi/untag-resource.html)  |  从资源中删除元数据标签。  | 

有关检索性能详情的时间序列指标和 AWS CLI 示例的更多信息，请参阅以下主题。

**Topics**
+ [检索性能详情的时间序列指标](USER_PerfInsights.API.TimeSeries.md)
+ [Performance Insights 的 AWS CLI 示例](USER_PerfInsights.API.Examples.md)

# 检索性能详情的时间序列指标
<a name="USER_PerfInsights.API.TimeSeries"></a>

`GetResourceMetrics` 操作从 Performance Insights 数据中检索一个或多个时间序列指标。`GetResourceMetrics` 需要指标和时间段，并返回包含数据点列表的响应。

例如，AWS 管理控制台使用 `GetResourceMetrics` 来填充 **Counter Metrics (计数器指标)** 图表和 **Database Load (数据库负载)** 图表，如下图所示。

![\[“Counter Metrics (计数器指标)”和“Database Load (数据库负载)”图表\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-api-charts.png)


`GetResourceMetrics` 返回的所有指标都是标准的时间序列指标，但 `db.load` 除外。此指标显示在 **Database Load (数据库负载)** 图表中。`db.load` 指标不同于其他时间序列指标，因为您可以将它分为称为*维度*的子组件。在上图中，按组成 `db.load` 的等待状态对 `db.load` 进行细分和分组。

**注意**  
`GetResourceMetrics` 也可以返回 `db.sampleload` 指标，但 `db.load` 指标在大多数情况下是合适的。

有关 `GetResourceMetrics` 返回的计数器指标的信息，请参阅[性能详情计数器指标](USER_PerfInsights_Counters.md)。

指标支持以下计算：
+ 平均值 – 指标在一段时间内的平均值。在指标名称后面附加 `.avg`。
+ 最小值 – 指标在一段时间内的最小值。在指标名称后面附加 `.min`。
+ 最大值 – 指标在一段时间内的最大值。在指标名称后面附加 `.max`。
+ 总计 – 指标值在一段时间内的总计。在指标名称后面附加 `.sum`。
+ 样本数 – 在一段时间内收集指标的次数。在指标名称后面附加 `.sample_count`。

例如，假定在 300 秒（5 分钟）时段内收集指标，并且每分钟收集一次指标。各分钟的值为 1、2、3、4 和 5。在本例中，返回以下计算：
+ 平均值 – 3
+ 最小值 – 1
+ 最大值 – 5
+ 总计 – 15
+ 样本数 – 5

有关使用 `get-resource-metrics` AWS CLI 命令的信息，请参阅 [https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html)。

对于 `--metric-queries` 选项，请指定一个或多个要获取其结果的查询。每个查询包括必需的 `Metric` 和可选的 `GroupBy` 和 `Filter` 参数。以下是 `--metric-queries` 选项规范的示例。

```
{
   "Metric": "string",
   "GroupBy": {
     "Group": "string",
     "Dimensions": ["string", ...],
     "Limit": integer
   },
   "Filter": {"string": "string"
     ...}
```

# Performance Insights 的 AWS CLI 示例
<a name="USER_PerfInsights.API.Examples"></a>

在以下各节中，详细了解性能详情的 AWS Command Line Interface（AWS CLI）并使用 AWS CLI 示例。

**Topics**
+ [性能详情的 AWS CLI 的内置帮助](#USER_PerfInsights.API.CLI)
+ [检索计数器指标](#USER_PerfInsights.API.Examples.CounterMetrics)
+ [检索首要等待事件的数据库负载平均值](#USER_PerfInsights.API.Examples.DBLoadAverage)
+ [检索首要 SQL 的数据库负载平均值](#USER_PerfInsights.API.Examples.DBLoadAverageTop10SQL)
+ [检索按 SQL 筛选的数据库负载平均值](#USER_PerfInsights.API.Examples.DBLoadAverageFilterBySQL)
+ [检索 SQL 语句的全文](#USER_PerfInsights.API.Examples.GetDimensionKeyDetails)
+ [创建一段时间的性能分析报告](#USER_PerfInsights.API.Examples.CreatePerfAnalysisReport)
+ [检索性能分析报告](#USER_PerfInsights.API.Examples.GetPerfAnalysisReport)
+ [列出数据库实例的所有性能分析报告](#USER_PerfInsights.API.Examples.ListPerfAnalysisReports)
+ [删除性能分析报告](#USER_PerfInsights.API.Examples.DeletePerfAnalysisReport)
+ [向性能分析报告中添加标签](#USER_PerfInsights.API.Examples.TagPerfAnalysisReport)
+ [列出性能分析报告的所有标签](#USER_PerfInsights.API.Examples.ListTagsPerfAnalysisReport)
+ [从性能分析报告中删除标签](#USER_PerfInsights.API.Examples.UntagPerfAnalysisReport)

## 性能详情的 AWS CLI 的内置帮助
<a name="USER_PerfInsights.API.CLI"></a>

您可以使用 AWS CLI 查看 Performance Insights 数据。可以通过在命令行上输入以下内容来查看 Performance Insights 的 AWS CLI 命令的帮助。

```
aws pi help
```

如果尚未安装 AWS CLI，请参阅《AWS CLI 用户指南》**中的[安装 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) 来了解安装信息。

## 检索计数器指标
<a name="USER_PerfInsights.API.Examples.CounterMetrics"></a>

以下屏幕截图显示 AWS 管理控制台 中的两个计数器指标图表。

![\[计数器指标图表。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-api-counters-charts.png)


以下示例显示如何收集 AWS 管理控制台 用于生成两个计数器指标图表的相同数据。

对于 Linux、macOS 或 Unix：

```
aws pi get-resource-metrics \
   --service-type RDS \
   --identifier db-ID \
   --start-time 2018-10-30T00:00:00Z \
   --end-time   2018-10-30T01:00:00Z \
   --period-in-seconds 60 \
   --metric-queries '[{"Metric": "os.cpuUtilization.user.avg"  },
                      {"Metric": "os.cpuUtilization.idle.avg"}]'
```

对于：Windows

```
aws pi get-resource-metrics ^
   --service-type RDS ^
   --identifier db-ID ^
   --start-time 2018-10-30T00:00:00Z ^
   --end-time   2018-10-30T01:00:00Z ^
   --period-in-seconds 60 ^
   --metric-queries '[{"Metric": "os.cpuUtilization.user.avg"  },
                      {"Metric": "os.cpuUtilization.idle.avg"}]'
```

还可以通过为 `--metrics-query` 选项指定文件来使命令更易于读取。以下示例为该选项使用名为 query.json 的文件。此文件具有以下内容。

```
[
    {
        "Metric": "os.cpuUtilization.user.avg"
    },
    {
        "Metric": "os.cpuUtilization.idle.avg"
    }
]
```

运行以下命令来使用此文件。

对于 Linux、macOS 或 Unix：

```
aws pi get-resource-metrics \
   --service-type RDS \
   --identifier db-ID \
   --start-time 2018-10-30T00:00:00Z \
   --end-time   2018-10-30T01:00:00Z \
   --period-in-seconds 60 \
   --metric-queries file://query.json
```

对于：Windows

```
aws pi get-resource-metrics ^
   --service-type RDS ^
   --identifier db-ID ^
   --start-time 2018-10-30T00:00:00Z ^
   --end-time   2018-10-30T01:00:00Z ^
   --period-in-seconds 60 ^
   --metric-queries file://query.json
```

上一个示例为各选项指定了以下值：
+ `--service-type` – 对于 Amazon RDS 来说为 `RDS`
+ `--identifier` – 数据库实例的资源 ID
+ `--start-time` 和 `--end-time`：要查询的期间的 ISO 8601 `DateTime` 值，支持多种格式

它查询一小时时间范围：
+ `--period-in-seconds`：对于每分钟查询来说为 `60`
+ `--metric-queries`：两个查询的数组，每个查询只用于一个指标。

  指标名称使用点在有用的类别中分类指标，最后一个元素是函数。在示例中，对于每个查询来说，此函数是 `avg`。与 Amazon CloudWatch 一样，支持的函数为 `min`、`max`、`total` 和 `avg`。

响应类似于以下内容。

```
{
    "Identifier": "db-XXX",
    "AlignedStartTime": 1540857600.0,
    "AlignedEndTime": 1540861200.0,
    "MetricList": [
        { //A list of key/datapoints 
            "Key": {
                "Metric": "os.cpuUtilization.user.avg" //Metric1
            },
            "DataPoints": [
                //Each list of datapoints has the same timestamps and same number of items
                {
                    "Timestamp": 1540857660.0, //Minute1
                    "Value": 4.0
                },
                {
                    "Timestamp": 1540857720.0, //Minute2
                    "Value": 4.0
                },
                {
                    "Timestamp": 1540857780.0, //Minute 3
                    "Value": 10.0
                }
                //... 60 datapoints for the os.cpuUtilization.user.avg metric
            ]
        },
        {
            "Key": {
                "Metric": "os.cpuUtilization.idle.avg" //Metric2
            },
            "DataPoints": [
                {
                    "Timestamp": 1540857660.0, //Minute1
                    "Value": 12.0
                },
                {
                    "Timestamp": 1540857720.0, //Minute2
                    "Value": 13.5
                },
                //... 60 datapoints for the os.cpuUtilization.idle.avg metric 
            ]
        }
    ] //end of MetricList
} //end of response
```

响应具有 `Identifier`、`AlignedStartTime` 和 `AlignedEndTime`。但 `--period-in-seconds` 值为 `60`，开始和结束时间已与分钟对齐。如果 `--period-in-seconds` 为 `3600`，则开始和结束时间已与小时对齐。

响应中的 `MetricList` 具有许多条目，每个条目具有 `Key` 和 `DataPoints` 条目。每个 `DataPoint` 具有 `Timestamp` 和 `Value`。每个 `Datapoints` 列表具有 60 个数据点，因为查询针对一小时内的每分钟数据，具有 `Timestamp1/Minute1`、`Timestamp2/Minute2` 等，一直到 `Timestamp60/Minute60`。

因为查询用于两个不同的计数器指标，响应 `MetricList` 中有两个元素。

## 检索首要等待事件的数据库负载平均值
<a name="USER_PerfInsights.API.Examples.DBLoadAverage"></a>

以下示例是 AWS 管理控制台用于生成堆栈区域线图的相同查询。此示例检索按前七个等待事件划分负载的最后一个小时的 `db.load.avg`。命令与 [检索计数器指标](#USER_PerfInsights.API.Examples.CounterMetrics) 中的命令相同。不过，query.json 文件具有以下内容。

```
[
    {
        "Metric": "db.load.avg",
        "GroupBy": { "Group": "db.wait_event", "Limit": 7 }
    }
]
```

运行如下命令。

对于 Linux、macOS 或 Unix：

```
aws pi get-resource-metrics \
   --service-type RDS \
   --identifier db-ID \
   --start-time 2018-10-30T00:00:00Z \
   --end-time   2018-10-30T01:00:00Z \
   --period-in-seconds 60 \
   --metric-queries file://query.json
```

对于：Windows

```
aws pi get-resource-metrics ^
   --service-type RDS ^
   --identifier db-ID ^
   --start-time 2018-10-30T00:00:00Z ^
   --end-time   2018-10-30T01:00:00Z ^
   --period-in-seconds 60 ^
   --metric-queries file://query.json
```

此示例指定指标 `db.load.avg` 和前七个等待事件的 `GroupBy`。有关此示例的有效值的详细信息，请参阅 *Performance Insights API 参考* 中的 [DimensionGroup](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DimensionGroup.html)。

响应类似于以下内容。

```
{
    "Identifier": "db-XXX",
    "AlignedStartTime": 1540857600.0,
    "AlignedEndTime": 1540861200.0,
    "MetricList": [
        { //A list of key/datapoints 
            "Key": {
                //A Metric with no dimensions. This is the total db.load.avg
                "Metric": "db.load.avg"
            },
            "DataPoints": [
                //Each list of datapoints has the same timestamps and same number of items
                {
                    "Timestamp": 1540857660.0, //Minute1
                    "Value": 0.5166666666666667
                },
                {
                    "Timestamp": 1540857720.0, //Minute2
                    "Value": 0.38333333333333336
                },
                {
                    "Timestamp": 1540857780.0, //Minute 3
                    "Value": 0.26666666666666666
                }
                //... 60 datapoints for the total db.load.avg key
            ]
        },
        {
            "Key": {
                //Another key. This is db.load.avg broken down by CPU
                "Metric": "db.load.avg",
                "Dimensions": {
                    "db.wait_event.name": "CPU",
                    "db.wait_event.type": "CPU"
                }
            },
            "DataPoints": [
                {
                    "Timestamp": 1540857660.0, //Minute1
                    "Value": 0.35
                },
                {
                    "Timestamp": 1540857720.0, //Minute2
                    "Value": 0.15
                },
                //... 60 datapoints for the CPU key
            ]
        },
        //... In total we have 8 key/datapoints entries, 1) total, 2-8) Top Wait Events
    ] //end of MetricList
} //end of response
```

在此响应中，`MetricList` 中有八个条目。有一个有关总 `db.load.avg` 的条目，还有七个条目，其中每个条目关于按前七个等待事件之一划分的 `db.load.avg`。与第一个示例不同，因为具有分组维度，所以必须具有一个用于每个指标分组的键。不能像在基本计数器指标使用案例中那样每个指标只有一个键。

## 检索首要 SQL 的数据库负载平均值
<a name="USER_PerfInsights.API.Examples.DBLoadAverageTop10SQL"></a>

以下示例按前 10 个 SQL 语句对 `db.wait_events` 进行分组。有两个不同的 SQL 语句组：
+ `db.sql` – 完整的 SQL 语句，例如 `select * from customers where customer_id = 123`
+ `db.sql_tokenized` – 令牌化的 SQL 语句，例如 `select * from customers where customer_id = ?`

在分析数据库性能时，将仅参数不同的 SQL 语句视为一个逻辑项目很有用。因此，您在查询时可以使用 `db.sql_tokenized`。不过，尤其在您对说明计划感兴趣时，查看带参数的完整 SQL 语句和按 `db.sql` 分组查询有时会更有用。令牌化和完整 SQL 之间存在父-子关系，多个完整 SQL（子级）分组在同一令牌化 SQL（父级）下。

此示例中的命令类似于 [检索首要等待事件的数据库负载平均值](#USER_PerfInsights.API.Examples.DBLoadAverage) 中的命令。不过，query.json 文件具有以下内容。

```
[
    {
        "Metric": "db.load.avg",
        "GroupBy": { "Group": "db.sql_tokenized", "Limit": 10 }
    }
]
```

下面的示例使用了 `db.sql_tokenized`。

对于 Linux、macOS 或 Unix：

```
aws pi get-resource-metrics \
   --service-type RDS \
   --identifier db-ID \
   --start-time 2018-10-29T00:00:00Z \
   --end-time   2018-10-30T00:00:00Z \
   --period-in-seconds 3600 \
   --metric-queries file://query.json
```

对于：Windows

```
aws pi get-resource-metrics ^
   --service-type RDS ^
   --identifier db-ID ^
   --start-time 2018-10-29T00:00:00Z ^
   --end-time   2018-10-30T00:00:00Z  ^
   --period-in-seconds 3600 ^
   --metric-queries file://query.json
```

此示例查询 24 小时，以秒为单位的期间为一小时。

此示例指定指标 `db.load.avg` 和前七个等待事件的 `GroupBy`。有关此示例的有效值的详细信息，请参阅 *Performance Insights API 参考* 中的 [DimensionGroup](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DimensionGroup.html)。

响应类似于以下内容。

```
{
    "AlignedStartTime": 1540771200.0,
    "AlignedEndTime": 1540857600.0,
    "Identifier": "db-XXX",

    "MetricList": [ //11 entries in the MetricList
        {
            "Key": { //First key is total
                "Metric": "db.load.avg"
            }
            "DataPoints": [ //Each DataPoints list has 24 per-hour Timestamps and a value
                {
                    "Value": 1.6964980544747081,
                    "Timestamp": 1540774800.0
                },
                //... 24 datapoints
            ]
        },
        {
            "Key": { //Next key is the top tokenized SQL  
                "Dimensions": {
                    "db.sql_tokenized.statement": "INSERT INTO authors (id,name,email) VALUES\n( nextval(?)  ,?,?)",
                    "db.sql_tokenized.db_id": "pi-2372568224",
                    "db.sql_tokenized.id": "AKIAIOSFODNN7EXAMPLE"
                },
                "Metric": "db.load.avg"
            },
            "DataPoints": [ //... 24 datapoints 
            ]
        },
        // In total 11 entries, 10 Keys of top tokenized SQL, 1 total key 
    ] //End of MetricList
} //End of response
```

此响应的 `MetricList` 中具有 11 个条目（1 个总计，10 个首要令牌化 SQL），其中每个条目具有 24 个每小时 `DataPoints`。

对于令牌化 SQL，每个维度列表中具有三个条目：
+ `db.sql_tokenized.statement` – 令牌化 SQL 语句。
+ `db.sql_tokenized.db_id ` – 用于引用 SQL 的本机数据库 ID，或 Performance Insights 为您生成的合成 ID（如果本机数据库 ID 不可用）。此示例返回 `pi-2372568224` 合成 ID。
+ `db.sql_tokenized.id`：Performance Insights 中的查询的 ID。

  在 AWS 管理控制台中，此 ID 称为支持 ID。它如此命名是因为 ID 是 AWS 支持服务可检查以帮助您解决数据库问题的数据。AWS 极其重视您的数据的安全性和隐私，几乎所有数据都使用您的 AWS KMS 密钥进行加密存储。因此，AWS 中的任何人都无法查看这些数据。在上一个示例中，`tokenized.statement` 和 `tokenized.db_id` 都进行了加密存储。如果您的数据库出现问题，AWS Support 可以通过引用支持 ID 来帮助您。

在查询时，在 `Group` 中指定 `GroupBy` 可能很方便。不过，要更精细地控制返回的数据，请指定维度列表。例如，如果所需的所有内容是 `db.sql_tokenized.statement`，则可将 `Dimensions` 属性添加到 query.json 文件中。

```
[
    {
        "Metric": "db.load.avg",
        "GroupBy": {
            "Group": "db.sql_tokenized",
            "Dimensions":["db.sql_tokenized.statement"],
            "Limit": 10
        }
    }
]
```

## 检索按 SQL 筛选的数据库负载平均值
<a name="USER_PerfInsights.API.Examples.DBLoadAverageFilterBySQL"></a>

![\[按 SQL 图表筛选。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-api-filter-chart.png)


上图显示选择了特定查询，并且首要平均活动会话堆栈区域线图限定为该查询。虽然查询仍针对前七个总体等待事件，已筛选响应的值。筛选条件使它只考虑与特定筛选条件匹配的会话。

此示例中的相应 API 查询类似于 [检索首要 SQL 的数据库负载平均值](#USER_PerfInsights.API.Examples.DBLoadAverageTop10SQL) 中的命令。不过，query.json 文件具有以下内容。

```
[
 {
        "Metric": "db.load.avg",
        "GroupBy": { "Group": "db.wait_event", "Limit": 5  }, 
        "Filter": { "db.sql_tokenized.id": "AKIAIOSFODNN7EXAMPLE" }
    }
]
```

对于 Linux、macOS 或 Unix：

```
aws pi get-resource-metrics \
   --service-type RDS \
   --identifier db-ID \
   --start-time 2018-10-30T00:00:00Z \
   --end-time   2018-10-30T01:00:00Z \
   --period-in-seconds 60 \
   --metric-queries file://query.json
```

对于：Windows

```
aws pi get-resource-metrics ^
   --service-type RDS ^
   --identifier db-ID ^
   --start-time 2018-10-30T00:00:00Z ^
   --end-time   2018-10-30T01:00:00Z ^
   --period-in-seconds 60 ^
   --metric-queries file://query.json
```

响应类似于以下内容。

```
{
    "Identifier": "db-XXX", 
    "AlignedStartTime": 1556215200.0, 
    "MetricList": [
        {
            "Key": {
                "Metric": "db.load.avg"
            }, 
            "DataPoints": [
                {
                    "Timestamp": 1556218800.0, 
                    "Value": 1.4878117913832196
                }, 
                {
                    "Timestamp": 1556222400.0, 
                    "Value": 1.192823803967328
                }
            ]
        }, 
        {
            "Key": {
                "Metric": "db.load.avg", 
                "Dimensions": {
                    "db.wait_event.type": "io", 
                    "db.wait_event.name": "wait/io/aurora_redo_log_flush"
                }
            }, 
            "DataPoints": [
                {
                    "Timestamp": 1556218800.0, 
                    "Value": 1.1360544217687074
                }, 
                {
                    "Timestamp": 1556222400.0, 
                    "Value": 1.058051341890315
                }
            ]
        }, 
        {
            "Key": {
                "Metric": "db.load.avg", 
                "Dimensions": {
                    "db.wait_event.type": "io", 
                    "db.wait_event.name": "wait/io/table/sql/handler"
                }
            }, 
            "DataPoints": [
                {
                    "Timestamp": 1556218800.0, 
                    "Value": 0.16241496598639457
                }, 
                {
                    "Timestamp": 1556222400.0, 
                    "Value": 0.05163360560093349
                }
            ]
        }, 
        {
            "Key": {
                "Metric": "db.load.avg", 
                "Dimensions": {
                    "db.wait_event.type": "synch", 
                    "db.wait_event.name": "wait/synch/mutex/innodb/aurora_lock_thread_slot_futex"
                }
            }, 
            "DataPoints": [
                {
                    "Timestamp": 1556218800.0, 
                    "Value": 0.11479591836734694
                }, 
                {
                    "Timestamp": 1556222400.0, 
                    "Value": 0.013127187864644107
                }
            ]
        }, 
        {
            "Key": {
                "Metric": "db.load.avg", 
                "Dimensions": {
                    "db.wait_event.type": "CPU", 
                    "db.wait_event.name": "CPU"
                }
            }, 
            "DataPoints": [
                {
                    "Timestamp": 1556218800.0, 
                    "Value": 0.05215419501133787
                }, 
                {
                    "Timestamp": 1556222400.0, 
                    "Value": 0.05805134189031505
                }
            ]
        }, 
        {
            "Key": {
                "Metric": "db.load.avg", 
                "Dimensions": {
                    "db.wait_event.type": "synch", 
                    "db.wait_event.name": "wait/synch/mutex/innodb/lock_wait_mutex"
                }
            }, 
            "DataPoints": [
                {
                    "Timestamp": 1556218800.0, 
                    "Value": 0.017573696145124718
                }, 
                {
                    "Timestamp": 1556222400.0, 
                    "Value": 0.002333722287047841
                }
            ]
        }
    ], 
    "AlignedEndTime": 1556222400.0
} //end of response
```

在此响应中，根据 query.json 文件中指定的令牌化 SQL AKIAIOSFODNN7EXAMPLE 的贡献筛选所有值。键还可能遵循与没有筛选条件的查询不同的顺序，因为前五个等待事件影响了筛选的 SQL。

## 检索 SQL 语句的全文
<a name="USER_PerfInsights.API.Examples.GetDimensionKeyDetails"></a>

以下示例检索数据库实例 `db-10BCD2EFGHIJ3KL4M5NO6PQRS5` 的 SQL 语句的全文。`--group` 是 `db.sql`，`--group-identifier` 是 `db.sql.id`。在此示例中，*my-sql-id* 表示通过调用 `pi get-resource-metrics` 或 `pi describe-dimension-keys` 检索的 SQL ID。

运行如下命令。

对于 Linux、macOS 或 Unix：

```
aws pi get-dimension-key-details \
   --service-type RDS \
   --identifier db-10BCD2EFGHIJ3KL4M5NO6PQRS5 \
   --group db.sql \
   --group-identifier my-sql-id \
   --requested-dimensions statement
```

对于：Windows

```
aws pi get-dimension-key-details ^
   --service-type RDS ^
   --identifier db-10BCD2EFGHIJ3KL4M5NO6PQRS5 ^
   --group db.sql ^
   --group-identifier my-sql-id ^
   --requested-dimensions statement
```

在此示例中，有维度详细信息。因此，Performance Insights 将检索 SQL 语句的全文，而不会将其截断。

```
{
    "Dimensions":[
    {
        "Value": "SELECT e.last_name, d.department_name FROM employees e, departments d WHERE e.department_id=d.department_id",
        "Dimension": "db.sql.statement",
        "Status": "AVAILABLE"
    },
    ...
    ]
}
```

## 创建一段时间的性能分析报告
<a name="USER_PerfInsights.API.Examples.CreatePerfAnalysisReport"></a>

以下示例为 `db-loadtest-0` 数据库创建了一个开始时间为 `1682969503`、结束时间为 `1682979503` 的性能分析报告。

```
aws pi create-performance-analysis-report \
        --service-type RDS \
        --identifier db-loadtest-0 \
        --start-time 1682969503 \
        --end-time 1682979503 \
        --region us-west-2
```

响应是报告的唯一标识符 `report-0234d3ed98e28fb17`。

```
{
   "AnalysisReportId": "report-0234d3ed98e28fb17"
}
```

## 检索性能分析报告
<a name="USER_PerfInsights.API.Examples.GetPerfAnalysisReport"></a>

以下示例检索 `report-0d99cc91c4422ee61` 报告的分析报告详细信息。

```
aws pi get-performance-analysis-report \
--service-type RDS \
--identifier db-loadtest-0 \
--analysis-report-id report-0d99cc91c4422ee61 \
--region us-west-2
```

响应提供报告状态、ID、时间详细信息和见解。

```
        {
    "AnalysisReport": {
        "Status": "Succeeded", 
        "ServiceType": "RDS", 
        "Identifier": "db-loadtest-0", 
        "StartTime": 1680583486.584, 
        "AnalysisReportId": "report-0d99cc91c4422ee61", 
        "EndTime": 1680587086.584, 
        "CreateTime": 1680587087.139, 
        "Insights": [
           ... (Condensed for space)
        ]
    }
}
```

## 列出数据库实例的所有性能分析报告
<a name="USER_PerfInsights.API.Examples.ListPerfAnalysisReports"></a>

以下示例列出了 `db-loadtest-0` 数据库的所有可用的性能分析报告。

```
aws pi list-performance-analysis-reports \
--service-type RDS \
--identifier db-loadtest-0 \
--region us-west-2
```

响应列出了所有带有报告 ID、状态和时间段详细信息的报告。

```
{
    "AnalysisReports": [
        {
            "Status": "Succeeded", 
            "EndTime": 1680587086.584, 
            "CreationTime": 1680587087.139, 
            "StartTime": 1680583486.584, 
            "AnalysisReportId": "report-0d99cc91c4422ee61"
        }, 
        {
            "Status": "Succeeded", 
            "EndTime": 1681491137.914, 
            "CreationTime": 1681491145.973, 
            "StartTime": 1681487537.914, 
            "AnalysisReportId": "report-002633115cc002233"
        }, 
        {
            "Status": "Succeeded", 
            "EndTime": 1681493499.849, 
            "CreationTime": 1681493507.762, 
            "StartTime": 1681489899.849, 
            "AnalysisReportId": "report-043b1e006b47246f9"
        }, 
        {
            "Status": "InProgress", 
            "EndTime": 1682979503.0, 
            "CreationTime": 1682979618.994, 
            "StartTime": 1682969503.0, 
            "AnalysisReportId": "report-01ad15f9b88bcbd56"
        }
    ]
}
```

## 删除性能分析报告
<a name="USER_PerfInsights.API.Examples.DeletePerfAnalysisReport"></a>

以下示例删除 `db-loadtest-0` 数据库的分析报告。

```
aws pi delete-performance-analysis-report \
--service-type RDS \
--identifier db-loadtest-0 \
--analysis-report-id report-0d99cc91c4422ee61 \
--region us-west-2
```

## 向性能分析报告中添加标签
<a name="USER_PerfInsights.API.Examples.TagPerfAnalysisReport"></a>

以下示例向 `report-01ad15f9b88bcbd56` 报告中添加了一个键为 `name`、值为 `test-tag` 的标签。

```
aws pi tag-resource \
--service-type RDS \
--resource-arn arn:aws:pi:us-west-2:356798100956:perf-reports/RDS/db-loadtest-0/report-01ad15f9b88bcbd56 \
--tags Key=name,Value=test-tag \
--region us-west-2
```

## 列出性能分析报告的所有标签
<a name="USER_PerfInsights.API.Examples.ListTagsPerfAnalysisReport"></a>

以下示例列出了 `report-01ad15f9b88bcbd56` 报告的所有标签。

```
aws pi list-tags-for-resource \
--service-type RDS \
--resource-arn arn:aws:pi:us-west-2:356798100956:perf-reports/RDS/db-loadtest-0/report-01ad15f9b88bcbd56 \
--region us-west-2
```

响应列出了添加到报告中的所有标签的值和键：

```
{
    "Tags": [
        {
            "Value": "test-tag", 
            "Key": "name"
        }
    ]
}
```

## 从性能分析报告中删除标签
<a name="USER_PerfInsights.API.Examples.UntagPerfAnalysisReport"></a>

以下示例从 `report-01ad15f9b88bcbd56` 报告中删除 `name` 标签。

```
aws pi untag-resource \
--service-type RDS \
--resource-arn arn:aws:pi:us-west-2:356798100956:perf-reports/RDS/db-loadtest-0/report-01ad15f9b88bcbd56 \
--tag-keys name \
--region us-west-2
```

删除标签后，调用 `list-tags-for-resource` API 不会列出此标签。

# 使用 AWS CloudTrail 记录 Performance Insights 调用
<a name="USER_PerfInsights.CloudTrail"></a>

Performance Insights 与 AWS CloudTrail 一起运行，后者是一项服务，在 Performance Insights 中提供由用户、角色或 AWS 服务所执行的操作的记录。CloudTrail 将 Performance Insights 的所有 API 调用作为事件捕获。此捕获包括的调用来自 Amazon RDS 控制台以及来自对性能详情 API 操作的代码调用。

如果您创建跟踪，可以使 CloudTrail 事件持续传送到 Amazon S3 存储桶（包括 Performance Insights 的事件）。如果您不配置跟踪，则仍可在 CloudTrail 控制台中的**事件历史记录**中查看最新事件。通过使用 CloudTrail 收集的数据，您可以确定特定的信息。此信息包括向 Performance Insights 发出的请求、从中发出请求的 IP 地址、何人发出的请求以及请求的发出时间。它还包括其他详细信息。

要了解有关 CloudTrail 的更多信息，请参阅 [AWS CloudTrail 用户指南](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)。

## 在 CloudTrail 中使用性能详情信息
<a name="USER_PerfInsights.CloudTrail.service-name-info"></a>

在您创建 AWS 账户时，将在该账户上启用 CloudTrail。当 Performance Insights 中发生活动时，该活动将记录在 CloudTrail 事件中，并与其他 AWS 服务事件一同保存在 CloudTrail 控制台的 **Event history (事件历史记录)** 中。您可以在 AWS 账户中查看、搜索和下载最新事件。有关更多信息，请参阅 *AWS CloudTrail 用户指南*中的[使用 CloudTrail 事件历史记录查看事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)。

要持续记录 AWS 账户中的事件（包括 Performance Insights 的事件），请创建跟踪。通过*跟踪*，CloudTrail 可将日志文件传送至 Amazon S3 存储桶。预设情况下，在控制台中创建跟踪时，此跟踪应用于所有 AWS 区域。此跟踪记录来自 AWS 分区中的所有 AWS 区域的事件，并将日志文件传送至您指定的 Amazon S3 存储桶。此外，您可以配置其他 AWS 服务，进一步分析在 CloudTrail 日志中收集的事件数据并采取行动。有关更多信息，请参阅 *AWS CloudTrail 用户指南*中的以下主题：
+ [创建跟踪概述](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [CloudTrail 支持的服务和集成](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)
+ [为 CloudTrail 配置 Amazon SNS 通知](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html)
+ [从多个区域接收 CloudTrail 日志文件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html)和[从多个账户接收 CloudTrail 日志文件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

所有 Performance Insights 操作均由 CloudTrail 进行日志记录，您可以在 [Performance Insights API 参考](https://docs.aws.amazon.com/performance-insights/latest/APIReference/Welcome.html)中找到这些操作的信息。例如，对 `DescribeDimensionKeys` 和 `GetResourceMetrics` 操作的调用将在 CloudTrail 日志文件中生成条目。

每个事件或日志条目都包含有关生成请求的人员信息。身份信息可帮助您确定以下内容：
+ 请求是使用根用户凭证还是 IAM 用户凭证发出的。
+ 请求是使用角色还是联合用户的临时安全凭证发出的。
+ 请求是否由其他 AWS 服务发出。

有关更多信息，请参阅 [CloudTrail userIdentity 元素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)。

## 性能详情日志文件条目
<a name="USER_PerfInsights.CloudTrail.service-name-entries"></a>

*跟踪*是一种配置，可用于将事件作为日志文件传送到您指定的 Amazon S3 存储桶。CloudTrail 日志文件包含一个或多个日志条目。*事件* 表示来自任何源的单个请求。每个事件包括有关所请求操作的信息、操作的日期和时间和请求参数等。CloudTrail 日志文件不是公用 API 调用的有序堆栈跟踪，因此它们不会按任何特定顺序显示。

下面的示例显示了一个 CloudTrail 日志条目，该条目说明了 `GetResourceMetrics` 操作。

```
{
    "eventVersion": "1.05",
    "userIdentity": {
        "type": "IAMUser",
         "principalId": "AKIAIOSFODNN7EXAMPLE",
        "arn": "arn:aws:iam::123456789012:user/johndoe",
        "accountId": "123456789012",
        "accessKeyId": "AKIAI44QH8DHBEXAMPLE",
        "userName": "johndoe"
    },
    "eventTime": "2019-12-18T19:28:46Z",
    "eventSource": "pi.amazonaws.com",
    "eventName": "GetResourceMetrics",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "72.21.198.67",
    "userAgent": "aws-cli/1.16.240 Python/3.7.4 Darwin/18.7.0 botocore/1.12.230",
    "requestParameters": {
        "identifier": "db-YTDU5J5V66X7CXSCVDFD2V3SZM",
        "metricQueries": [
            {
                "metric": "os.cpuUtilization.user.avg"
            },
            {
                "metric": "os.cpuUtilization.idle.avg"
            }
        ],
        "startTime": "Dec 18, 2019 5:28:46 PM",
        "periodInSeconds": 60,
        "endTime": "Dec 18, 2019 7:28:46 PM",
        "serviceType": "RDS"
    },
    "responseElements": null,
    "requestID": "9ffbe15c-96b5-4fe6-bed9-9fccff1a0525",
    "eventID": "08908de0-2431-4e2e-ba7b-f5424f908433",
    "eventType": "AwsApiCall",
    "recipientAccountId": "123456789012"
}
```

# 性能详情 API 和接口 VPC 端点（AWS PrivateLink）
<a name="pi-vpc-interface-endpoints"></a>

可以使用 AWS PrivateLink 在 VPC 和 Amazon RDS 性能详情之间创建私有连接。可以像在 VPC 中一样访问性能详情，而无需使用互联网网关、NAT 设备、VPN 连接或 Direct Connect 连接。VPC 中的实例不需要公有 IP 地址即可访问性能详情。

您可以通过创建由 AWS PrivateLink 提供支持的*接口端点*来建立此私有连接。我们将在您为接口端点启用的每个子网中创建一个端点网络接口。这些是请求者托管的网络接口，用作发往性能详情的流量的入口点。

有关更多信息，请参阅《AWS PrivateLink 指南》**中的[通过 AWS PrivateLink 访问 AWS 服务](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html)。

## 性能详情的注意事项
<a name="vpc-endpoint-considerations"></a>

在为性能详情设置接口端点之前，请首先查看《AWS PrivateLink 指南》**中的 [Considerations](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#considerations-interface-endpoints)。

性能详情支持通过接口端点调用其所有 API 操作。

默认情况下，支持通过接口端点对性能详情进行完全访问。要控制通过接口端点流向性能详情的流量，请将安全组与端点网络接口关联。

## 可用性
<a name="rds-and-vpc-interface-endpoints-availability"></a>

性能详情 API 目前在支持性能详情的 AWS 区域中支持 VPC 端点。有关性能详情可用性的信息，请参阅[支持 Amazon RDS 中 Performance Insights 的区域和数据库引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.PerformanceInsights.md)。

## 为性能详情创建接口端点
<a name="vpc-endpoint-create"></a>

可以使用 Amazon VPC 控制台或 AWS Command Line Interface（AWS CLI）为性能详情创建接口端点。有关更多信息，请参阅《AWS PrivateLink 指南》**中的[创建接口端点](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws)。

使用以下服务名称为性能详情创建接口端点：

如果为接口端点启用私有 DNS，则可使用其默认区域 DNS 名称向性能详情发出 API 请求。例如 `pi.us-east-1.amazonaws.com`。

## 为性能详情 API 创建 VPC 端点策略
<a name="vpc-endpoint-policy"></a>

端点策略是一种 IAM 资源，您可以将其附加到接口端点。默认端点策略支持通过接口端点完全访问性能详情。要控制支持从 VPC 访问性能详情的权限，请将自定义端点策略附加到接口端点。

端点策略指定以下信息：
+ 可执行操作的主体（AWS 账户、IAM 用户和 IAM 角色）。
+ 可执行的操作。
+ 可对其执行操作的资源。

有关更多信息，请参阅《AWS PrivateLink 指南》**中的[使用端点策略控制对服务的访问权限](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)。

**示例：性能详情操作的 VPC 端点策略**  
以下是自定义端点策略的示例。将此策略附加到接口端点时，该策略会向所有主体授予对所有资源执行所列出的性能详情操作的访问权限。

```
{
   "Statement":[
      {
         "Principal":"*",
         "Effect":"Allow",
         "Action":[
            "rds:CreatePerformanceAnalysisReport",
            "rds:DeletePerformanceAnalysisReport",
            "rds:GetPerformanceAnalysisReport"
         ],
         "Resource":"*"
      }
   ]
}
```

**示例：拒绝来自指定 AWS 账户的所有访问的 VPC 端点策略**  
以下 VPC 端点策略会拒绝 AWS 账户 `123456789012` 所有使用端点访问资源的权限。此策略允许来自其他账户的所有操作。

```
{
  "Statement": [
    {
      "Action": "*",
      "Effect": "Allow",
      "Resource": "*",
      "Principal": "*"
    },
    {
      "Action": "*",
      "Effect": "Deny",
      "Resource": "*",
      "Principal": { "AWS": [ "123456789012" ] }
     }
   ]
}
```

## 性能详情的 IP 寻址
<a name="pi-ip-addressing"></a>

IP 地址使 VPC 中的资源能够相互通信以及与 Internet 上的资源进行通信。性能详情同时支持 IPv4 和 IPv6 寻址协议。默认情况下，性能详情和 Amazon VPC 使用 IPv4 寻址协议。您无法关闭这种行为。创建 VPC 时，请确保指定 IPv4 CIDR 块 (一系列私有 IPv4 地址)。

可以选择将 IPv6 CIDR 块分配给 VPC 和子网，并将来自该块的 IPv6 地址分配给子网中的 RDS 资源。对 IPv6 协议的支持扩展了支持的 IP 地址数量。通过使用 IPv6 协议，您可以确保有足够的可用地址来应对 Internet 的未来发展。新的和现有 RDS 资源可以在 VPC 内使用 IPv4 和 IPv6 地址。在应用程序不同部分使用的两个协议之间配置、保护和转换网络流量可能会产生运营开销。您可以对 Amazon RDS 资源的 IPv6 协议进行标准化，以简化网络配置。有关服务端点和配额的更多信息，请参阅 [Amazon Relational Database Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/rds-service.html)。

有关 Amazon RDS IP 寻址的更多信息，请参阅 [Amazon RDS IP 寻址](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.IP_addressing)。