

# 使用 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)。