

# Amazon RDS での Performance Insights を使用したDB 負荷のモニタリング
<a name="USER_PerfInsights"></a>

**重要**  
 AWS は、Performance Insights のサポート終了日を 2026 年 6 月 30 日と発表しました。この日以降、Amazon RDS は Performance Insights コンソールのエクスペリエンス、柔軟な保持期間 (1～24 か月)、および関連する料金のサポートを終了します。Performance Insights API は存続し、料金の変更はありません。Performance Insights API の料金は、CloudWatch Database Insights の料金とともに AWS 請求書に表示されます。  
 Performance Insights の有料利用枠を使用する DB インスタンスは、2026 年 6 月 30 日より前に Database Insights のアドバンストモードにアップグレードすることをお勧めします。Database Insights のアドバンストモードへのアップグレード方法については、「[Amazon RDS で Database Insights のアドバンストモードを有効にする](USER_DatabaseInsights.TurningOnAdvanced.md)」を参照してください。  
 アクションを実行しない場合、Performance Insights を使用する DB インスタンスは、デフォルトで Database Insights のスタンダードモードを使用します。Database Insights のスタンダードモードでは、7 日間を超えたパフォーマンスデータ履歴、実行プラン機能とオンデマンド分析機能が Amazon RDS コンソールで利用できなくなる可能性があります。2026 年 6 月 30 日以降、Database Insights のアドバンストモードのみが実行プランとオンデマンド分析をサポートします。  
 CloudWatch Database Insights を使用すると、データベースのフリートのデータベース負荷をモニタリングし、パフォーマンスの大規模な分析とトラブルシューティングを行うことができます。Database Insights の詳細については、「[CloudWatch Database Insights による Amazon RDS データベースのモニタリング](USER_DatabaseInsights.md)」を参照してください。詳細については、[Amazon CloudWatch 料金表](https://aws.amazon.com/cloudwatch/pricing/)をご覧ください。

Performance Insights は、既存の Amazon RDS モニタリング機能を拡張して、データベースのパフォーマンスを明確にし、分析しやすくします。Performance Insights ダッシュボードを使用してAmazon RDS DB インスタンスのロードのデータベースロードを視覚化したり、ロードを待機、SQL ステートメント、ホスト、ユーザー別にフィルタリングしたりできます。Amazon DocumentDB での Performance Insights 使用については、「*[Amazon DocumentDB デベロッパーガイド](https://docs.aws.amazon.com/documentdb/latest/developerguide/performance-insights.html)*」を参照してください。

**Topics**
+ [Amazon RDS での Performance Insights の概要](USER_PerfInsights.Overview.md)
+ [Amazon RDS の Performance Insights の有効化と無効化](USER_PerfInsights.Enabling.md)
+ [Amazon RDS for MariaDB または MySQL における Performance Insights のPerformance Schema の概要](USER_PerfInsights.EnableMySQL.md)
+ [Performance Insights 用のアクセスポリシーの設定](USER_PerfInsights.access-control.md)
+ [Performance Insights ダッシュボードを使用してメトリクスを分析する](USER_PerfInsights.UsingDashboard.md)
+ [Performance Insights のプロアクティブ推奨事項の表示](USER_PerfInsights.InsightsRecommendationViewDetails.md)
+ [Performance Insights API for Amazon RDS によるメトリクスの取得](USER_PerfInsights.API.md)
+ [AWS CloudTrail を使用した Performance Insights 呼び出しのログ記録](USER_PerfInsights.CloudTrail.md)
+ [Performance Insights API とインターフェイス VPC エンドポイント (AWS PrivateLink)](pi-vpc-interface-endpoints.md)

# Amazon RDS での Performance Insights の概要
<a name="USER_PerfInsights.Overview"></a>

**重要**  
 AWS は、Performance Insights のサポート終了日を 2026 年 6 月 30 日と発表しました。この日以降、Amazon RDS は Performance Insights コンソールのエクスペリエンス、柔軟な保持期間 (1～24 か月)、および関連する料金のサポートを終了します。Performance Insights API は存続し、料金の変更はありません。Performance Insights API の料金は、CloudWatch Database Insights の料金とともに AWS 請求書に表示されます。  
 Performance Insights の有料利用枠を使用する DB インスタンスは、2026 年 6 月 30 日より前に Database Insights のアドバンストモードにアップグレードすることをお勧めします。Database Insights のアドバンストモードへのアップグレード方法については、「[Amazon RDS で Database Insights のアドバンストモードを有効にする](USER_DatabaseInsights.TurningOnAdvanced.md)」を参照してください。  
 アクションを実行しない場合、Performance Insights を使用する DB インスタンスは、デフォルトで Database Insights のスタンダードモードを使用します。Database Insights のスタンダードモードでは、7 日間を超えたパフォーマンスデータ履歴、実行プラン機能とオンデマンド分析機能が Amazon RDS コンソールで利用できなくなる可能性があります。2026 年 6 月 30 日以降、Database Insights のアドバンストモードのみが実行プランとオンデマンド分析をサポートします。  
 CloudWatch Database Insights を使用すると、データベースのフリートのデータベース負荷をモニタリングし、パフォーマンスの大規模な分析とトラブルシューティングを行うことができます。Database Insights の詳細については、「[CloudWatch Database Insights による Amazon RDS データベースのモニタリング](USER_DatabaseInsights.md)」を参照してください。詳細については、[Amazon CloudWatch 料金表](https://aws.amazon.com/cloudwatch/pricing/)をご覧ください。

デフォルトで RDS は、すべての Amazon RDS エンジンのコンソール作成ウィザードで Performance Insights を有効にします。DB インスタンスに複数のデータベースがある場合、Performance Insights はパフォーマンスデータを集計します。

Amazon RDS の Performance Insights の概要は次の動画で確認できます。

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


**重要**  
以下のトピックでは、Aurora 以外の DB エンジンで Amazon RDS Performance Insights を使用する方法について説明します。Amazon Aurora での Amazon RDS Performance Insights の使用については、「*Amazon Aurora ユーザーガイド*」の「[Using Amazon RDS Performance Insights](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html)」(Amazon RDS Performance Insights の使用) を参照してください。

**Topics**
+ [データベース負荷](USER_PerfInsights.Overview.ActiveSessions.md)
+ [最大 CPU 容量](USER_PerfInsights.Overview.MaxCPU.md)
+ [Amazon RDS DB エンジンとインスタンスクラスでサポートされている Performance Insights](USER_PerfInsights.Overview.Engines.md)
+ [Performance Insights の料金とデータ保持](USER_PerfInsights.Overview.cost.md)

# データベース負荷
<a name="USER_PerfInsights.Overview.ActiveSessions"></a>

*データベース負荷 (DB 負荷)* は、データベース内のセッションアクティビティのレベルを測定します。`DBLoad` は Performance Insights の主要なメトリクスで、Performance Insights は 1 秒ごとに DB 負荷を収集します。

**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>

*データベースセッション*は、リレーショナルデータベースとのアプリケーションのダイアログを表します。アクティブなセッションとは、DB エンジンに作業を送信し、レスポンスを待っている接続です。

セッションは、CPU での動作中、またはリソースが使用可能になるのを待っているときにアクティブになります。例えば、アクティブなセッションでは、ページ (またはブロック) がメモリに読み込まれるのを待機し、ページからデータを読み取る間に CPU を消費することがあります。

## 平均アクティブセッション
<a name="USER_PerfInsights.Overview.ActiveSessions.AAS"></a>

*平均アクティブセッション (AAS)*は`DBLoad`Performance Insights のメトリクスの単位です。データベース上で同時にアクティブなセッション数を測定します。

毎秒、Performance Insights は、クエリを同時に実行するセッションの数をサンプリングします。Performance Insights は、アクティブなセッションごとに以下のデータを収集します。
+ SQL ステートメント
+ セッション状態 (CPU で実行中または待機中)
+ ホスト
+ SQL を実行しているユーザー

Performance Insights は、特定期間の総セッション数を総サンプル数で割って AAS を計算します。たとえば、次の表は、1 秒間隔で実行中のクエリの連続する 5 つのサンプルを示しています。

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

前述の例では、時間間隔の DB ロードは 2 AAS でした。この測定は、5 つのサンプルを採取した期間に、平均して 2 つのセッションがある時点でアクティブであったことを意味します。

## 平均アクティブ実行
<a name="USER_PerfInsights.Overview.ActiveSessions.AAE"></a>

1 秒あたりの平均アクティブ実行 (AAE) は AAS に関連しています。AAE を計算するために、Performance Insightsでは、クエリの合計実行時間を時間間隔で割ります。次の表に、前述の表の同じクエリに対する AAE 計算を示します。

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

ほとんどの場合、クエリの AAS と AAE はほぼ同じです。ただし、計算への入力は異なるデータソースであるため、計算はわずかに異なります。

## ディメンション
<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エンジン、「[ディメンションでスライスされた DB の負荷](USER_PerfInsights.UsingDashboard.Components.md#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.dims)」を参照してください。

### 待機イベント
<a name="USER_PerfInsights.Overview.ActiveSessions.waits"></a>

*待機イベント*を指定すると、SQL ステートメントは、特定のイベントが発生するまで待機してから、実行を継続できます。待機イベントは、作業が妨げられる場所を示すため、DB ロードの重要なディメンションまたはカテゴリになります。

すべてのアクティブなセッションはCPU 上で実行されているか、待っています。例えば、セッションがメモリでバッファを検索したり、計算を実行したり、プロシージャコードを実行したりするときに CPU を消費します。セッションが CPU を消費していないときは、メモリバッファが空くのを待っているか、データファイルの読み取りやログの書き込みを待っている可能性があります。セッションのリソース待機時間が長くなると、CPU 上で動作する時間は短くなります。

データベースのチューニングのとき、セッションが待っているリソースを見つけようとすることがよくあります。例えば、2 つまたは 3 つの待機イベントが DBロードの 90% を占めることがあります。これは、平均して、アクティブなセッションが少数のリソースを待機するためにほとんどの時間を費やしていることを意味します。これらの待機の原因がわかれば、解決策を試すことができます。

待機イベントは、DB エンジンごとに異なります。
+ 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 は、どのクエリが DB ロードの最も大きな原因になっているかを示します。例えば、多くのクエリが現在データベースで実行されている可能性がありますが、1 つのクエリが DB ロードの 99% を占めている可能性もあります。この場合、負荷が高いと、クエリに問題がある可能性があります。

デフォルトでは、Performance Insights コンソールには、データベース負荷の原因となっている上位の SQL クエリが表示されます。コンソールには、各ステートメントに関連する統計情報も表示されます。特定のステートメントのパフォーマンスの問題を診断するには、その実行プランを調べます。

### プラン
<a name="USER_PerfInsights.Overview.ActiveSessions.plans"></a>

*実行プラン* (あるいはシンプルに*プラン*とも呼ばれるもの) は、データにアクセスする際の一連のステップのことです。例えば、テーブル `t1` と `t2` を統合するプランでは、`t1` 内のすべての行をループしながら、その各行を `t2` 内の行と比較します。リレーショナルデータベースでの*オプティマイザ*とは組み込みのコードのことで、これは SQL クエリのための最も効率的なプランを決定します。

DB インスタンスの場合、Performance Insights が実行プランを自動的に収集します。SQL のパフォーマンスに関する問題を診断するには、リソースの使用量が高い SQL クエリに関して取得したプランを検証します。プランから、データベースがどのようにクエリを解析して実行したかがわかります。

プランを使用して DB 負荷を分析する方法については、以下を参照してください。
+ Oracle: [Amazon RDS の Performance Insights ダッシュボードを使用した Oracle 実行プランの分析](USER_PerfInsights.UsingDashboard.AccessPlans.md)
+ SQL Server: [Amazon RDS の Performance Insights ダッシュボードを使用した SQL Server 実行プランの分析](USER_PerfInsights.UsingDashboard.AccessPlansSqlServer.md)

#### プランキャプチャ
<a name="USER_PerfInsights.Overview.ActiveSessions.plans.capture"></a>

Performance Insights は、5 分ごとに、リソースを最も多く消費しているクエリを特定し、対応するプランをキャプチャします。したがって、膨大な数のプランを手動で収集して管理する必要はありません。ユーザーは、**[Top SQL]** (上位の SQL) タブを通じて、最も問題のあるクエリのプランに対処することができます。

**注記**  
Performance Insights では、含まれるテキストが収集可能な最大数を超えるクエリのプランはキャプチャされません。詳しくは、「[Performance Insights ダッシュボードでより多くの SQL テキストにアクセスする](USER_PerfInsights.UsingDashboard.SQLTextSize.md)」を参照してください。

実行プランの保持期間は、Performance Insights のデータの保持期間と同じです。無料利用枠の保持設定は「**デフォルト (7 日)**」です。パフォーマンスデータをさらに長期間保持するには、1～24 か月を指定します。保持期間の詳細については、「[Performance Insights の料金とデータ保持](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` を含むクエリの 2 つがあります。これらのリテラルクエリには、それぞれ複数のプランが含まれる可能性があります。

ダイジェストクエリを選択すると、選択したダイジェストの子ステートメントのすべてのプランがコンソールに表示されます。したがって、プランを見つけるために、子ステートメント全体を確認する必要はありません。表示されているプランの中に、上位 10 の子ステートメントのリストにないものが含まれる場合があります。コンソールには、クエリが上位 10 であるかどうかにかかわらず、プランが収集されたすべての子クエリのプランが表示されます。

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

ダッシュボードの [**データベースロード**] グラフで、セッション情報が収集、集計、表示されます。アクティブなセッションが最大 CPU 容量を超えているかどうかを確認するには、**最大 vCPU** ラインとの関係を調べます。Performance Insights は、**最大 vCPU** 値を DB インスタンスの vCPU (仮想 CPU) のコア数によって決定します。

vCPU では一度に 1 つのプロセスを実行できます。プロセスの数が vCPU の数を超えると、プロセスはキューイングを開始します。キューイングが増加すると、データベースのパフォーマンスが低下します。DB 負荷が [**Max vCPU (最大 vCPU)**] ラインをしばしば超過し、プライマリ待機状態が CPU である場合、CPU が過負荷になっています。この場合、インスタンスへの接続を抑制したり、CPU ロードの高い SQL クエリを調整したり、より大きなインスタンスクラスを検討する必要があります。待機状態の高い一貫したインスタンスは、解決するボトルネックまたはリソースの競合問題がある可能性があることを示します。これは、DB ロードが**最大 vCPU** ラインを超えていない場合にも該当します。

# Amazon RDS DB エンジンとインスタンスクラスでサポートされている Performance Insights
<a name="USER_PerfInsights.Overview.Engines"></a>

**重要**  
 AWS は、Performance Insights のサポート終了日を 2026 年 6 月 30 日と発表しました。この日以降、Amazon RDS は Performance Insights コンソールのエクスペリエンス、柔軟な保持期間 (1～24 か月)、および関連する料金のサポートを終了します。Performance Insights API は存続し、料金の変更はありません。Performance Insights API の料金は、CloudWatch Database Insights の料金とともに AWS 請求書に表示されます。  
 Performance Insights の有料利用枠を使用する DB インスタンスは、2026 年 6 月 30 日より前に Database Insights のアドバンストモードにアップグレードすることをお勧めします。Database Insights のアドバンストモードへのアップグレード方法については、「[Amazon RDS で Database Insights のアドバンストモードを有効にする](USER_DatabaseInsights.TurningOnAdvanced.md)」を参照してください。  
 アクションを実行しない場合、Performance Insights を使用する DB インスタンスは、デフォルトで Database Insights のスタンダードモードを使用します。Database Insights のスタンダードモードでは、7 日間を超えたパフォーマンスデータ履歴、実行プラン機能とオンデマンド分析機能が Amazon RDS コンソールで利用できなくなる可能性があります。2026 年 6 月 30 日以降、Database Insights のアドバンストモードのみが実行プランとオンデマンド分析をサポートします。  
 CloudWatch Database Insights を使用すると、データベースのフリートのデータベース負荷をモニタリングし、パフォーマンスの大規模な分析とトラブルシューティングを行うことができます。Database Insights の詳細については、「[CloudWatch Database Insights による Amazon RDS データベースのモニタリング](USER_DatabaseInsights.md)」を参照してください。詳細については、[Amazon CloudWatch 料金表](https://aws.amazon.com/cloudwatch/pricing/)をご覧ください。

次の表に、Performance Insights をサポートしている Amazon RDS DB エンジンを示します。

**注記**  
Amazon Aurora については、*Amazon Aurora ユーザーガイド*の [Performance Insights でサポートされている DB エンジン](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.Overview.Engines.html)を参照してください。


|  Amazon RDS DB エンジン  | サポート対象のエンジンバージョンとリージョン | インスタンスクラスに関する制限 | 
| --- | --- | --- | 
|  Amazon RDS for MariaDB  |  RDS for MariaDB に関する Performance Insights のバージョンとリージョンの可用性の詳細については、「[Amazon RDS の Performance Insights でサポートされているリージョンと DB エンジン](Concepts.RDS_Fea_Regions_DB-eng.Feature.PerformanceInsights.md)」を参照してください。  |  Performance Insights は、 次のインスタンスクラスではサポートされていません。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.Engines.html)  | 
|  RDS for MySQL  |  RDS for MySQL に関する Performance Insights のバージョンとリージョンの可用性の詳細については、「[Amazon RDS の Performance Insights でサポートされているリージョンと DB エンジン](Concepts.RDS_Fea_Regions_DB-eng.Feature.PerformanceInsights.md)」を参照してください。  |  Performance Insights は、 次のインスタンスクラスではサポートされていません。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.Engines.html)  | 
|  Amazon RDS for Microsoft SQL Server  |  RDS for SQL Server に関する Performance Insights のバージョンとリージョンの可用性の詳細については、「[Amazon RDS の Performance Insights でサポートされているリージョンと DB エンジン](Concepts.RDS_Fea_Regions_DB-eng.Feature.PerformanceInsights.md)」を参照してください。  |  該当なし  | 
|  Amazon RDS for PostgreSQL  |  RDS for PostgreSQL に関する Performance Insights のバージョンとリージョンの可用性の詳細については、「[Amazon RDS の Performance Insights でサポートされているリージョンと DB エンジン](Concepts.RDS_Fea_Regions_DB-eng.Feature.PerformanceInsights.md)」を参照してください。  |  該当なし  | 
|  Amazon RDS for Oracle  |  RDS for Oracle に関する Performance Insights のバージョンとリージョンの可用性の詳細については、「[Amazon RDS の Performance Insights でサポートされているリージョンと DB エンジン](Concepts.RDS_Fea_Regions_DB-eng.Feature.PerformanceInsights.md)」を参照してください。  |  該当なし  | 

## Amazon RDS DB エンジン、リージョン、およびインスタンスクラスでサポートされている Performance Insights 機能
<a name="USER_PerfInsights.Overview.PIfeatureEngnRegSupport"></a>

次の表に、Performance Insights 機能をサポートしている Amazon RDS DB エンジンを示します。


| 機能 | [料金階層](https://aws.amazon.com/rds/performance-insights/pricing/) |  [サポートされるリージョン](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html#Concepts.RegionsAndAvailabilityZones.Regions)  |  [サポートされる DB エンジン](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 の Performance Insights ダッシュボードを使用した Oracle 実行プランの分析](USER_PerfInsights.UsingDashboard.AccessPlans.md) | すべて | すべて |  RDS for Oracle  | すべて | 
| [一定期間のデータベースパフォーマンスの分析](USER_PerfInsights.UsingDashboard.AnalyzePerformanceTimePeriod.md) | 有料階層のみ |  すべて  |  RDS for PostgreSQL  |  すべて  | 
|  [Performance Insights のプロアクティブ推奨事項の表示](USER_PerfInsights.InsightsRecommendationViewDetails.md) | 有料階層のみ | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.Engines.html)  |  すべて  | すべて  | 

# Performance Insights の料金とデータ保持
<a name="USER_PerfInsights.Overview.cost"></a>

デフォルトでは、Performance Insights には、7 日間のパフォーマンスデータ履歴と 1 か月あたり 100 万件の API リクエストを含む無料利用枠が用意されています。また、より長い保持期間を購入することもできます。料金情報の詳細については、「[Performance Insights の料金](https://aws.amazon.com/rds/performance-insights/pricing/)」を参照してください。

RDS コンソールでは、Performance Insights データの保持期間を次の中から選択できます。
+ **デフォルト (7 日)**
+ ***n* か月** (***n*** は 1 ～ 24 の数値)

![\[Performance Insights データの保持期間を選択してください。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/pi-retention-periods.png)


AWS CLI を使用して保持期間を設定する方法については、「」を参照してください。

# Amazon RDS の Performance Insights の有効化と無効化
<a name="USER_PerfInsights.Enabling"></a>

**重要**  
 AWS は、Performance Insights のサポート終了日を 2026 年 6 月 30 日と発表しました。この日以降、Amazon RDS は Performance Insights コンソールのエクスペリエンス、柔軟な保持期間 (1～24 か月)、および関連する料金のサポートを終了します。Performance Insights API は存続し、料金の変更はありません。Performance Insights API の料金は、CloudWatch Database Insights の料金とともに AWS 請求書に表示されます。  
 Performance Insights の有料利用枠を使用する DB インスタンスは、2026 年 6 月 30 日より前に Database Insights のアドバンストモードにアップグレードすることをお勧めします。Database Insights のアドバンストモードへのアップグレード方法については、「[Amazon RDS で Database Insights のアドバンストモードを有効にする](USER_DatabaseInsights.TurningOnAdvanced.md)」を参照してください。  
 アクションを実行しない場合、Performance Insights を使用する DB インスタンスは、デフォルトで Database Insights のスタンダードモードを使用します。Database Insights のスタンダードモードでは、7 日間を超えたパフォーマンスデータ履歴、実行プラン機能とオンデマンド分析機能が Amazon RDS コンソールで利用できなくなる可能性があります。2026 年 6 月 30 日以降、Database Insights のアドバンストモードのみが実行プランとオンデマンド分析をサポートします。  
 CloudWatch Database Insights を使用すると、データベースのフリートのデータベース負荷をモニタリングし、パフォーマンスの大規模な分析とトラブルシューティングを行うことができます。Database Insights の詳細については、「[CloudWatch Database Insights による Amazon RDS データベースのモニタリング](USER_DatabaseInsights.md)」を参照してください。詳細については、[Amazon CloudWatch 料金表](https://aws.amazon.com/cloudwatch/pricing/)をご覧ください。

DB インスタンスまたはマルチ AZ DB クラスターの作成時に、Performance Insights をオンにすることができます。必要に応じて、後でコンソールから DB インスタンスを変更することでオフにできます。Performance Insights を有効化または無効化した場合も、ダウンタイム、再起動、フェイルオーバーが発生することはありません。

**注記**  
Performance Schema は、 Amazon RDS for MariaDB または MySQL で使用される、オプションのパフォーマンスツールです。Performance Schema のオンとオフを切り替える場合は、再起動する必要があります。ただし、Performance Insights のオンとオフを切り替えた場合は、再起動する必要はありません。詳細については、「[Amazon RDS for MariaDB または MySQL における Performance Insights のPerformance Schema の概要](USER_PerfInsights.EnableMySQL.md)」を参照してください。

Performance Insights エージェントは DB ホストの限られた CPU とメモリを消費します。DB のロードが高い場合、エージェントはデータ収集の頻度を下げることでパフォーマンスへの影響を抑えます。

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

コンソールでは、DB インスタンスまたはマルチ AZ DB クラスターの作成時または変更時に、Performance Insights のオンとオフを切り替えることができます。

**DB インスタンスまたはマルチ AZ DB クラスター の作成時に Performance Insights のオンとオフを切り替える**

新しい DB インスタンスまたはマルチ AZ DB クラスターを作成した後、Amazon RDS では Performance Insights がデフォルトで有効になります。Performance Insights をオフにするには、**[データベースインサイト - スタンダード]** オプションを選択し、**[Performance Insights を有効化]** オプションの選択を解除します。

詳細については、以下のトピックを参照してください。
+ DB インスタンスを作成するには、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」の DB エンジンの手順に従ってください。
+ マルチ AZ DB クラスターを作成するには、「[Amazon RDS 用のマルチ AZ DB クラスターの作成](create-multi-az-db-cluster.md)」の DB エンジンの手順に従ってください。

次のスクリーンショットは [**Performance Insights**] セクションを示しています。

![\[コンソールを使用した DB インスタンスまたはマルチ AZ DB クラスターの作成中に Performance Insights をオンにする\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_enabling.png)


[**Performance Insights の有効化**] を選択すると、次のオプションがあります。
+ **保有** (Database Insights のスタンダードモードのみ) – Performance Insights データを保持する時間。保持期間の設定は、**デフォルト (7 日間)** です。パフォーマンスデータをさらに長期間保持するには、1～24 か月を指定します。保持期間の詳細については、「[Performance Insights の料金とデータ保持](USER_PerfInsights.Overview.cost.md)」を参照してください。
+ ** AWS KMS key** ―を指定します。。AWS KMS keyPerformance Insights は、潜在的に機密性の高いすべてのデータを KMS キーを使用して暗号化します。データは、転送中と不使用時のいずれも暗号化されます。詳細については、「[Performance Insights 用の AWS KMS ポリシーの変更](USER_PerfInsights.access-control.cmk-policy.md)」を参照してください。

**DB インスタンスまたはマルチ AZ DB クラスターの変更時に Performance Insights のオン/オフを切り替える**

コンソールでは、DB インスタンスまたはマルチ AZ DB クラスターを変更して Performance Insights を管理できます。

**コンソールを使用して DB インスタンスまたはマルチ AZ DB クラスターの Performance Insights を管理するには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. [**データベース**] をクリックします。

1. DB インスタンスまたはマルチ AZ DB クラスターを選択し、**[変更]** を選択します。

1. Performance Insights を有効にするには、**[Performance Insights を有効にする]** を選択します。Performance Insights をオフにするには、**[データベースインサイト - スタンダード]** オプションを選択し、**[Performance Insights を有効化]** オプションの選択を解除します。

   [**Performance Insights の有効化**] を選択すると、次のオプションがあります。
   + **保有** (Database Insights のスタンダードモードのみ) – Performance Insights データを保持する時間。保持期間の設定は、**デフォルト (7 日間)** です。パフォーマンスデータをさらに長期間保持するには、1～24 か月を指定します。保持期間の詳細については、「[Performance Insights の料金とデータ保持](USER_PerfInsights.Overview.cost.md)」を参照してください。
   + **AWS KMS key** - KMS キーを指定します。Performance Insights は、潜在的に機密性の高いすべてのデータを KMS キーを使用して暗号化します。データは、転送中と不使用時のいずれも暗号化されます。詳細については、「[Amazon RDS リソースの暗号化](Overview.Encryption.md)」を参照してください。

1. [**Continue**] を選択します。

1. [**変更のスケジュール**] で、[今すぐ適用] を選択します。次にスケジュールされたメンテナンスウィンドウで [Apply] (適用) を選択すると、インスタンスではこの設定が無視され、Performance Insights が直ちにオンになります。

1. [**インスタンスの変更**] を選択します。

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

[create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) AWS CLI コマンドを使用する場合は、`--enable-performance-insights` を指定して Performance Insights をオンにし、`--database-insights-mode` を `advanced` または `standard` に設定します。Performance Insights をオフにするには、`--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 をオンにする際に、`--performance-insights-retention-period` オプションを使用して Performance Insights のデータを保持する日数を指定できます (オプション)。`7`、*month* \$1 31 (*month* は 1 ～ 23 の範囲の数値)、または `731` を指定できます。例えば、パフォーマンスデータを 3 か月間保持する場合は、`93` (3 \$1 31) を指定します。デフォルトは `7` 日間です。保持期間の詳細については、「[Performance Insights の料金とデータ保持](USER_PerfInsights.Overview.cost.md)」を参照してください。

次の例では、`sample-db-cluster` で Performance Insights をオンにして、Performance Insights のデータの保持期間を 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]
```

**注記**  
Performance Insights がクラスターレベルで管理されていない DB クラスター内のインスタンスに対してのみ、Performance Insights を切り替えることができます。

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

Amazon RDS API 操作の [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) オペレーションを使用して 新しい DB インスタンスを作成する場合、`EnablePerformanceInsights` を `True` に設定して、Performance Insights をオンにします。Performance Insights をオフにするには、`EnablePerformanceInsights` を `False` に設定し、`DatabaseInsightsMode` を `standard` に設定します。

以下の API オペレーションを使用して `EnablePerformanceInsights` 値を指定することもできます。
+  [CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) (マルチ AZ DB クラスター) 
+  [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) (マルチ AZ DB クラスター) 
+  [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) 

Performance Insights をオンにする際に、`PerformanceInsightsRetentionPeriod` パラメータを使用して Performance Insights のデータを保持する期間を日数で指定できます (オプション)。`7`、*month* \$1 31 (*month* は 1 ～ 23 の範囲の数値)、または `731` を指定できます。例えば、パフォーマンスデータを 3 か月間保持する場合は、`93` (3 \$1 31) を指定します。デフォルトは `7` 日間です。保持期間の詳細については、「[Performance Insights の料金とデータ保持](USER_PerfInsights.Overview.cost.md)」を参照してください。

------

# Amazon RDS for MariaDB または MySQL における Performance Insights のPerformance Schema の概要
<a name="USER_PerfInsights.EnableMySQL"></a>

Performance Schema は、Amazon RDS for MariaDB または MySQL ランタイムのパフォーマンスを低い詳細レベルでモニタリングするオプション機能です。Performance Schema は、データベースのパフォーマンスへの影響を最小限に抑えるように設計されています。Performance Insights は、Performance Schema の有無に関係なく使用できる独立した機能です。

**Topics**
+ [Performance Schema の概要](#USER_PerfInsights.EnableMySQL.overview)
+ [Performance Insights と Performance Schema](#USER_PerfInsights.effect-of-pfs)
+ [Performance Insights による Performance Schema の自動管理](#USER_PerfInsights.EnableMySQL.options)
+ [Performance Schema の再起動による影響](#USER_PerfInsights.EnableMySQL.reboot)
+ [Performance Insights が Performance Schema を管理しているかどうかの確認](USER_PerfInsights.EnableMySQL.determining-status.md)
+ [Amazon RDS for MariaDB または MySQL における Performance Schema の有効化](USER_PerfInsights.EnableMySQL.RDS.md)

## Performance Schema の概要
<a name="USER_PerfInsights.EnableMySQL.overview"></a>

Performance Schema は、MariaDB および MySQL データベースのイベントをモニタリングします。*イベント*とは、時間を消費し、タイミング情報を収集できるように実装されたデータベースサーバーアクションです。イベントの例には、以下のようなものがあります。
+ 関数呼び出し
+ オペレーティングシステムの待機
+ SQL 実行のステージ
+ SQL ステートメントのグループ

`PERFORMANCE_SCHEMA` ストレージエンジンは、Performance Schema 機能を実装するためのメカニズムです。このエンジンは、データベースのソースコード内の計測を使用してイベントデータを収集します。エンジンは、イベントを `performance_schema` データベースのメモリ専用テーブルに保存します。他のテーブルにクエリを実行するのと同様に、`performance_schema` をクエリできます。詳細については、*MySQL リファレンスマニュアル*の「[MySQL Performance Schema](https://dev.mysql.com/doc/refman/8.0/en/performance-schema.html)」を参照してください。

## Performance Insights と Performance Schema
<a name="USER_PerfInsights.effect-of-pfs"></a>

Performance Insights と Performance Schema は別々の機能ですが、両者は関連しています。 Amazon RDS for MariaDB または MySQL の Performance Insights の動作は、Performance Schema がオンになっているかどうか、およびオンになっている場合は、Performance Insights が Performance Schema を自動的に管理するかどうかによって異なります。次の表は、動作の説明です。


| Performance Schema がオンになっている | Performance Insights 管理モード | Performance Insights の動作 | 
| --- | --- | --- | 
|  はい  |  自動  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_PerfInsights.EnableMySQL.html)  | 
|  はい  |  手動  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_PerfInsights.EnableMySQL.html)  | 
|  いいえ  |  該当なし  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_PerfInsights.EnableMySQL.html)  | 

## Performance Insights による Performance Schema の自動管理
<a name="USER_PerfInsights.EnableMySQL.options"></a>

Performance Insights を有効にした状態で Amazon RDS for MariaDB または MySQL DB インスタンスを作成すると、Performance Schema も有効になります。この場合、Performance Insights は Performance Schema パラメータを自動的に管理します。この設定を推奨します。

Performance Insights が Performance Schema を自動的に管理するとき、`performance_schema` の **Source** は `System default` です。

**注記**  
t4g.medium インスタンスクラスでは、パフォーマンススキーマの自動管理はサポートされていません。

`performance_schema` パラメータの値を手動で変更し、後で自動管理に戻す方法については、「[Amazon RDS for MariaDB または MySQL における Performance Schema の有効化](USER_PerfInsights.EnableMySQL.RDS.md)」を参照してください。

**重要**  
Performance Insights で Performance Schema を有効にしても、パラメータグループ値は変更されません。ただし、値は実行中の DB インスタンスで変更されます。変更された値を表示する唯一の方法は、`SHOW GLOBAL VARIABLES` コマンドを実行することです。

## Performance Schema の再起動による影響
<a name="USER_PerfInsights.EnableMySQL.reboot"></a>

Performance Insights と Performance Schema は、DB インスタンスの再起動の要件が異なります。

**Performance Schema**  
この機能をオンまたはオフにするには、DB インスタンスを再起動する必要があります。

**Performance Insights**  
この機能をオンまたはオフにするために、DB インスタンスを再起動する必要はありません。

Performance Schema が現在有効になっていない場合、DB インスタンスを再起動せずに Performance Insights を有効にすると、Performance Schema は有効になりません。

# Performance Insights が Performance Schema を管理しているかどうかの確認
<a name="USER_PerfInsights.EnableMySQL.determining-status"></a>

Performance Insights が、現在、サポート対象のメジャーエンジンバージョンの Performance Schema を管理しているかどうかを確認するには、次の表を参照してください。


| performance\$1schema パラメータの設定 | [Source] (ソース) 列の設定 | Performance Insights が Performance Schema を管理しているかどうか | 
| --- | --- | --- | 
| 0 | System default | はい | 
| 0 または 1 | Modified | いいえ | 

次の手順では、Performance Insights が Performance Schema を自動的に管理しているかどうかを確認します。

**Performance Insights が Performance Schema を自動管理しているかどうかを確認するには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. [**パラメータグループ**] を選択します。

1. DB インスタンスのパラメータグループを選択します。

1. 検索バーに **performance\$1schema** と入力します。

1. **[ソース]** がシステムデフォルト、**[値]** が **[0]** であることをチェックします。上記の設定の場合、Performance Insights は Performance Schema を自動管理します。

   上記の例では、Performance Insights は Performance Schema を自動管理していません。  
![\[performance_schema パラメータの設定が変更されていることを示しています。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_schema_user.png)

# Amazon RDS for MariaDB または MySQL における Performance Schema の有効化
<a name="USER_PerfInsights.EnableMySQL.RDS"></a>

DB インスタンスまたはマルチ AZ DB クラスターで Performance Insights がオンになっているが、現在 Performance Schema は管理していないと仮定します。Performance Insights が Performance Schema を自動管理できるようにするには、次のステップを実行します。

**自動管理用 Performance Schema を設定するには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. **[パラメータグループ]** を選択します。

1. DB インスタンスまたはマルチ AZ DB クラスターのパラメータグループの名前を選択します。

1. **[編集]** を選択します。

1. 検索バーに **performance\$1schema** と入力します。

1. `performance_schema` パラメータを選択します。

1. **[デフォルト値に設定]** を選択します。

1. **[値をデフォルトに設定]** を選択して確定します。

1. **[Save changes]** (変更の保存) をクリックします。

1. DB インスタンスまたはマルチ AZ DB クラスターを再起動します。
**重要**  
Performance Schema のオンとオフを切り替えるたびに、DB インスタンスまたはマルチ AZ DB クラスターを必ず再起動します。

インスタンスのパラメータの変更の詳細については、「[Amazon RDS の DB パラメータグループのパラメータの変更](USER_WorkingWithParamGroups.Modifying.md)」を参照してください。ダッシュボードのページの詳細については、「[Performance Insights ダッシュボードを使用してメトリクスを分析する](USER_PerfInsights.UsingDashboard.md)」を参照してください。MySQL パフォーマンススキーマの詳細については、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) から適切な許可を得る必要があります。

**注記**  
カスタマーマネージドキーで Performance Insights を使用するには、ユーザーに AWS AWS KMS キーの `kms:Decrypt` および `kms:GenerateDataKey` アクセス許可を付与します。

以下の方法を使用して Performance Insights にアクセスします。
+ [読み取り専用アクセスのための `AmazonRDSPerformanceInsightsReadOnly` 管理ポリシーをアタッチする](USER_PerfInsights.access-control.managed-policy.md)
+ [Performance Insights API のすべてのオペレーションにアクセスするための `AmazonRDSPerformanceInsightsFullAccess` 管理ポリシーをアタッチする](USER_PerfInsights.access-control.FullAccess-managed-policy.md)
+ [特定のアクセス許可を持つカスタム IAM ポリシーを作成する](USER_PerfInsights.access-control.custom-policy.md)
+ [暗号化された Performance Insights データの 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` は Amazon RDS Performance Insights API のすべての読み取り専用オペレーションへのアクセス許可を付与する AWS マネージドポリシーです。

アクセス許可セットまたはロールに `AmazonRDSPerformanceInsightsReadOnly` をアタッチする場合は、次の CloudWatch アクセス許可もアタッチする必要があります。
+ `GetMetricStatistics`
+ `ListMetrics`
+ `GetMetricData`

これらのアクセス許可により、受信者は他のコンソール機能で Performance Insights を使用できます。

 Amazon 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` は Amazon RDS Performance Insights API のすべての操作へのアクセス許可を付与する AWS マネージドポリシーです。

アクセス許可セットまたはロールに `AmazonRDSPerformanceInsightsFullAccess` をアタッチする場合は、次の CloudWatch アクセス許可もアタッチする必要があります。
+ `GetMetricStatistics`
+ `ListMetrics`
+ `GetMetricData`

これらのアクセス許可により、受信者は他のコンソール機能で Performance Insights を使用できます。

 Amazon 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. **[Create policy]** (ポリシーの作成) を選択します。

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. ナビゲーションペインで [**ユーザー**] を選択します。

1. リストから存在するユーザーを 1 人選択します。
**重要**  
Performance Insights を使用するには、カスタムポリシーのほかに別のポリシーで、Amazon RDS へのアクセスを許可されている必要があります。例えば、`AmazonRDSPerformanceInsightsReadOnly` 事前定義ポリシーで、ユーザーに Amazon RDS への読み取り専用アクセスを許可します。詳細については、「[ポリシーを使用したアクセスの管理](UsingWithRDS.IAM.md#security_iam_access-manage)」を参照してください。

1. [**Summary**] ページで、[**Add permissions**] を選択します。

1. **[Attach existing policies directly (既存のポリシーを直接アタッチする)**] を選択します。**検索**を行う場合は、次の画像に示すようにポリシー名の初期の数文字を入力します。  
![\[ポリシーの選択\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_attach_iam_policy.png)

1. ポリシーを選択し、[**次へ: レビュー**] を選択します。

1. [**アクセス権限の追加**] を選択します。

# Performance Insights 用の AWS KMS ポリシーの変更
<a name="USER_PerfInsights.access-control.cmk-policy"></a>

Performance Insights は、AWS KMS key を使用して機密データを暗号化します。API またはコンソールを通じて Performance Insights を有効にする場合は、次のいずれかを実行します。
+ デフォルト AWS マネージドキー を選択します。

  Amazon RDS は、新しい DB インスタンスに AWS マネージドキー を使用します。Amazon RDS は、AWS アカウント に AWS マネージドキー を作成します。AWS アカウント には、AWS リージョン ごとに Amazon RDS の AWS マネージドキー が別々にあります。
+ カスタマーマネージドキーを選択します。

  カスタマーマネージドキーを指定する場合、Performance Insights API を呼び出すアカウント内のユーザーは、KMS キーに対する `kms:Decrypt` および `kms:GenerateDataKey` アクセス許可が必要です。IAM ポリシーを使用して、これらのアクセス許可を設定できます。ただし、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 は、カスタマー管理型のキー (CMK) を使用して機密データを暗号化します。Performance Insights を有効にすると、API を介して AWS KMS キーを提供できます。Performance Insights は、このキーの 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 は、機密データと非機密データの両方を返すことができます。リクエストパラメータにより、レスポンスに機密データを含めるかどうかが決定されます。リクエストのフィルターパラメーターまたは group-by パラメーターのいずれかに機密ディメンションが含まれている場合、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 データへの追加のアクセスコントロールを適用することができます。このアクセスコントロールは、Performance Insights の `GetResourceMetrics`、`DescribeDimensionKeys`、`GetDimensionKeyDetails` アクションの個々のディメンションへのアクセスを許可または拒否できます。詳細なアクセスコントロールを使用するには、条件キーを使用して 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" }
                ] 
            }
            
        ] }
    ]
}
```
次の例は、ディメンションに対する 1 つの許可アクセスと 2 つの拒否アクセスを指定します。    
****  

```
{
    "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" }
                ] 
            },
            ...
        ] }
    ]
}
```

# Performance Insights でのタグベースのアクセスコントロールの使用
<a name="USER_PerfInsights.access-control.tag-based-policy"></a>

親 DB インスタンスから継承されたタグを使用して、Performance Insights メトリクスへのアクセスを制御できます。Performance Insights オペレーションへのアクセスを制御するには、IAM ポリシーを使用します。これらのポリシーは、DB インスタンスのタグをチェックしてアクセス許可を決定できます。

## Performance Insights でのタグの仕組み
<a name="USER_PerfInsights.access-control.tag-inheritance"></a>

Performance Insights は、DB インスタンスタグを自動的に適用して Performance Insights メトリクスを承認します。DB インスタンスにタグを追加すると、すぐにそれらのタグを使用して Performance Insights データへのアクセスを制御できます。
+ Performance Insights メトリクスのタグを追加または更新するには、DB インスタンスのタグを変更します。
+ Performance Insights メトリクスのタグを表示するには、Performance Insights メトリクスリソースで `ListTagsForResource` を呼び出します。メトリクスに関連付けられた DB インスタンスからタグを返します。

**注記**  
Performance Insights メトリクスで直接使用しようとすると、`TagResource` および `UntagResource` オペレーションはエラーを返します。

## タグベースの IAM ポリシーの作成
<a name="USER_PerfInsights.access-control.tag-based-policies"></a>

Performance Insights オペレーションへのアクセスを制御するには、IAM ポリシーで `aws:ResourceTag` 条件キーを使用します。これらのポリシーは、yourDB インスタンスのタグをチェックします。

**Example**  
このポリシーは、本番データベースの Performance Insights メトリクスへのアクセスを防止します。このポリシーは、`env:prod` でタグ付けされたデータベースリソースの Performance Insights での `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 は、Performance Insights のサポート終了日を 2026 年 6 月 30 日と発表しました。この日以降、Amazon RDS は Performance Insights コンソールのエクスペリエンス、柔軟な保持期間 (1～24 か月)、および関連する料金のサポートを終了します。Performance Insights API は存続し、料金の変更はありません。Performance Insights API の料金は、CloudWatch Database Insights の料金とともに AWS 請求書に表示されます。  
 Performance Insights の有料利用枠を使用する DB インスタンスは、2026 年 6 月 30 日より前に Database Insights のアドバンストモードにアップグレードすることをお勧めします。Database Insights のアドバンストモードへのアップグレード方法については、「[Amazon RDS で Database Insights のアドバンストモードを有効にする](USER_DatabaseInsights.TurningOnAdvanced.md)」を参照してください。  
 アクションを実行しない場合、Performance Insights を使用する DB インスタンスは、デフォルトで Database Insights のスタンダードモードを使用します。Database Insights のスタンダードモードでは、7 日間を超えたパフォーマンスデータ履歴、実行プラン機能とオンデマンド分析機能が Amazon RDS コンソールで利用できなくなる可能性があります。2026 年 6 月 30 日以降、Database Insights のアドバンストモードのみが実行プランとオンデマンド分析をサポートします。  
 CloudWatch Database Insights を使用すると、データベースのフリートのデータベース負荷をモニタリングし、パフォーマンスの大規模な分析とトラブルシューティングを行うことができます。Database Insights の詳細については、「[CloudWatch Database Insights による Amazon RDS データベースのモニタリング](USER_DatabaseInsights.md)」を参照してください。詳細については、[Amazon CloudWatch 料金表](https://aws.amazon.com/cloudwatch/pricing/)をご覧ください。

Performance Insights ダッシュボードには、パフォーマンスの問題を分析し、解決するのに役立つ、データベースのパフォーマンス情報が含まれます。ダッシュボードのメインページで、データベース負荷に関する情報を確認できます。待機イベントや SQL などのディメンションによって、DB のロードを「スライス」することが可能です。

**Topics**
+ [Performance Insights ダッシュボードの概要](USER_PerfInsights.UsingDashboard.Components.md)
+ [Performance Insights ダッシュボードにアクセスする](USER_PerfInsights.UsingDashboard.Opening.md)
+ [待機イベントによる DB 負荷の分析](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.md)
+ [一定期間のデータベースパフォーマンスの分析](USER_PerfInsights.UsingDashboard.AnalyzePerformanceTimePeriod.md)
+ [Performance Insights のトップ SQL タブを使用したクエリの分析](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.md)
+ [Oracle PDB の上位負荷の分析](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.TopPDB.md)
+ [Amazon RDS の Performance Insights ダッシュボードを使用した実行プランの分析](USER_PerfInsights.UsingDashboard.AnalyzingPlans.md)

# Performance Insights ダッシュボードの概要
<a name="USER_PerfInsights.UsingDashboard.Components"></a>

ダッシュボードは、Performance Insights を操作する最も簡単な方法です。次の例では、PostgreSQL DB インスタンスのダッシュボードを示しています。

![\[メトリクスのフィルタリング\]](http://docs.aws.amazon.com/ja_jp/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 ダッシュボードには過去 60 分間の DB ロードが表示されます。この範囲は、最短で 5 分、最長で 2 年まで調整することができます。カスタム相対範囲を選択することもできます。

![\[Performance Insights の相対時間\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf-insights-relative-time.png)


開始日時と終了日時の絶対範囲を選択できます。次の例は、24/9/25 の午前 0 時から 24/9/28 の午後 11 時 59 分までの時間範囲を示しています。

![\[Performance Insights の絶対時間\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf-insights-absolute-time.png)


デフォルトでは、Performance Insights ダッシュボードのタイムゾーンは協定世界時 (UTC) です。ローカルタイムゾーンを選択することもできます。

![\[Performance Insights ダッシュボードのローカルタイムゾーンを選択する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf-insights-local-time-zone.png)


## カウンターメトリクスグラフ
<a name="USER_PerfInsights.UsingDashboard.Components.Countermetrics"></a>

カウンターメトリクスを使用すると、Performance Insights ダッシュボードをカスタマイズして最大 10 個の追加グラフを含めることができます。これらのグラフは、数十種類のオペレーティングシステムとデータベースのパフォーマンスメトリクスの一部を示しています。この情報をデータベース負荷と関連付けることで、パフォーマンスの問題を特定して分析できます。

 **カウンターメトリクス**グラフはパフォーマンスカウンターのデータを表示します。デフォルトのメトリクスは DB エンジンによって異なります。
+ 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/ja_jp/AmazonRDS/latest/UserGuide/images/oracle_perf_insights_counters.png)


「**メトリクスの管理**」 を選択して、パフォーマンスカウンターを変更します。以下のスクリーンショットに示すように、複数の **OS メトリクス**または**データベースメトリクス**を選択できます。メトリクスの詳細を表示するには、メトリクス名にカーソルを合わせます。

![\[メトリクスのフィルタリング\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_select_metrics.png)


各 DB エンジンで追加できるカウンターメトリクスの詳細については、「[Performance Insights カウンターメトリクス](USER_PerfInsights_Counters.md)」を参照してください。

## データベースロードのグラフ
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions"></a>

**データベースロード**は、データベースアクティビティと DB インスタンス容量の比較結果が **最大 vCPU** の折れ線グラフとして表示されます。デフォルトでは、折れ線グラフは DB ロードを単位時間あたりの平均アクティブセッションで表します。DB ロードは、待機状態でスライス (グループ化) されます。

![\[データベース負荷\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_2.png)


### ディメンションでスライスされた DB の負荷
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.dims"></a>

サポートされているディメンション別にグループ化された、アクティブなセッションとして負荷を表示するように選択できます。次の表に、各エンジンでサポートされているディメンションを示します。


| ディメンション | Oracle | SQL Server | PostgreSQL | MySQL | 
| --- | --- | --- | --- | --- | 
|  ホスト  |  可能  |  はい  |  はい  |  はい  | 
|  SQL  |  可能  |  はい  |  はい  |  はい  | 
|  ユーザー  |  可能  |  はい  |  はい  |  はい  | 
|  待機  |  可能  |  はい  |  はい  |  はい  | 
|  プラン  |  はい  |  なし  |  なし  |  いいえ  | 
|  アプリケーション  |  いいえ  |  なし  |  あり  |  なし  | 
|  データベース  |  いいえ  |  なし  |  はい  |  はい  | 
|  セッションタイプ  |  いいえ  |  なし  |  あり  |  なし  | 

次の図に、PostgreSQL DB インスタンスのディメンションを示します。

![\[メトリクスのフィルタリング\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_2b.png)


### ディメンション項目に関する DB ロードの詳細
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.item-details"></a>

ディメンション内の DB 負荷項目の詳細を表示するには、項目名にカーソルを合わせます。次の図は、SQL ステートメントの詳細を示しています。

![\[データベース負荷項目の詳細\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_2c.png)


凡例で選択した期間に対する項目の詳細を表示するには、その項目にカーソルを合わせます。

![\[DB 負荷の期間の詳細\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_3.png)


## 上位のディメンションテーブル
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable"></a>

上位ディメンションテーブルは、DB 負荷を異なる次元でスライスします。ディメンションとは、DB ロードの異なる特性についてのカテゴリまたは「スライス化」のことです。ディメンションが SQL の場合、**上位の SQL**は、DB ロードに最も貢献している SQL ステートメントを表示します。

![\[上位 N のディメンション\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_4c.png)


以下のディメンションタブのいずれかを選択します。


| タブ | 説明 | サポートされているエンジン | 
| --- | --- | --- | 
|  上位の SQL  |  現在実行中の SQL ステートメント  |  すべて  | 
|  上位待機  |  データベースバックエンドが待っているイベント  |  すべて  | 
|  上位ホスト  |  接続されているクライアントのホスト名  |  すべて  | 
|  上位ユーザー  |  データベースにログインしているユーザー  |  すべて  | 
|  上位データベース  |  プロキシが接続しているデータベースユーザーの名前  |  PostgreSQL、MySQL、MariaDB、SQL Server のみ  | 
|  上位アプリケーション  |  データベースに接続されたアプリケーションの名前。  |  PostgreSQL と SQL Server のみ  | 
|  上位セッションタイプ  |  現在のセッションのタイプ  |  PostgreSQL のみ | 

[**上位の SQL**] タブを使用してクエリを分析する方法を学習するには、「[[トップ SQL] タブの概要](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.md#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL)」を参照してください。

# Performance Insights ダッシュボードにアクセスする
<a name="USER_PerfInsights.UsingDashboard.Opening"></a>

Amazon RDS のPerformance Insights ダッシュボードでは、Performance Insights と CloudWatch メトリクスの統合ビューが提供されます。

Performance Insights ダッシュボードにアクセスするには、以下の手順を使用します。

**AWS マネジメントコンソールで Performance Insights ダッシュボードを表示するには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、**[Performance Insights]** を選択します。

1. DB インスタンスを選択します。

   Performance Insights を有効にした DB インスタンスでは、DB インスタンスのリストで **[セッション]** 項目を選択して Performance Insights ダッシュボードにアクセスすることもできます。[**現在のアクティビティ**] の [**セッション**] 項目には、直近 5 分間におけるアクティブなセッションの平均データベースロードが表示されます。負荷はバーでグラフィカルに示されます。バーが空の場合、DB インスタンスはアイドル状態です。負荷が増加すると、バーが青色で塗りつぶされます。負荷が DB インスタンスクラスのおける仮想 CPU (vCPU) の数を超えると、バーが赤色になり、ボトルネックとなる可能性があることが示されます。  
![\[メトリクスのフィルタリング\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_0a.png)

1. (オプション) 右上の日付または時間範囲を選択し、別の相対時間間隔または絶対時間間隔を指定します。これで、期間を指定して、データベースパフォーマンス分析レポートを生成できます。レポートには、特定されたインサイトと推奨事項が記載されています。詳細については、「[Performance Insights でのパフォーマンス分析レポートの作成](USER_PerfInsights.UsingDashboard.AnalyzePerformanceTimePeriod.md)」を参照してください。  
![\[時間間隔でメトリクスをフィルタリングする\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_0c.png)

   以下のスクリーンショットでは、DB 負荷の間隔は 5 時間です。  
![\[時間間隔を 5 時間に設定する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_1.png)

1. (オプション) DB ロードグラフの一部を拡大表示するには、スタート時間を選択し、目的の期間の最後までドラッグします。

   選択した領域が DB ロードチャートで強調表示されます。  
![\[指定した時間間隔の DB ロード\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_zoom_in.png)

   マウスを離すと、選択した AWS リージョンの DB ロードグラフが拡大表示され、**上位*ディメンション***のテーブルが再計算されます。  
![\[選択した DB ロードを拡大表示する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_zoom_in_b.png)

1. (オプション) データを自動的に更新するには、**[自動更新]** を選択します。  
![\[自動更新を設定する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_1b.png)

   Performance Insights ダッシュボードが自動的に新しいデータで更新されます。更新の頻度は、表示されるデータの量によって異なります。
   + 「5 分」は 10 秒ごとに更新されます。
   + 「1 時間」は 5 分ごとに更新されます。
   + 「5 時間」は 5 分ごとに更新されます。
   + 「24 時間」は 30 分ごとに更新されます。
   + 「1 週間」は 1 日ごとに更新されます。
   + 「1 か月」は 1 日ごとに更新されます。

# 待機イベントによる DB 負荷の分析
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad"></a>

**データベースロード** のグラフにボトルネックが表示される場合、ロードの発生源を確認できます。これを実行するには、**データベースロード**グラフ下にある[上位ロード項目] テーブルを参照してください。SQL クエリやユーザーのような特定の項目を選択すると、その項目をドリルダウンして詳細を表示できます。

待機および上位 SQL クエリによってグループ分けされた DB 負荷は、Performance Insights ダッシュボードのデフォルトビューです。通常、この組み合わせは、パフォーマンス問題に関する最も正しい情報を提供します。待機でグループ化された DB 負荷は、データベースにリソースまたは同時のボトルネックがあるかどうかを示します。この場合、上位負荷項目のテーブルの **SQL** タブには、どのクエリがその負荷をかけているかが表示されます。

パフォーマンスの問題を診断するための一般的なワークフローは次のとおりです。

1. 「**データベースロード**」 グラフを確認し、**最大 CPU** ラインを超えているデータベースロードのインシデントがあるかどうかを確認します。

1. ある場合は、「**データベースロード**」 グラフを確認して、どの待機状態 (複数) が主に原因であるかを特定します。

1. 上位の負荷項目テーブルの **SQL** タブが待機状態に最も影響しているクエリを確認することによって、ロードを引き起こすダイジェストクエリを特定します。これらは [**DB Load by Wait**] 列で識別できます。

1. [**SQL**] タブでこれらのダイジェストクエリの 1 つを選択して展開し、構成されている子クエリを確認します。

例えば、以下のダッシュボードで、[**ログファイルの同期**] の待機はほとんどの DB 負荷の主な原因となっています。[**LGWR すべてのワーカーグループ**] の待機も高くなっています。「**上位の SQL**」 グラフでは、「**ログファイルの同期**」 の待機の発生元として、頻繁な`COMMIT` ステートメントが示されています。この場合、コミット頻度を下げると、DB 負荷が軽減されます。

![\[ログファイル同期エラー\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_7.png)


# 一定期間のデータベースパフォーマンスの分析
<a name="USER_PerfInsights.UsingDashboard.AnalyzePerformanceTimePeriod"></a>

一定期間のパフォーマンス分析レポートを作成して、オンデマンド分析でデータベースのパフォーマンスを分析します。パフォーマンス分析レポートで、リソースのボトルネックや DB インスタンスでのクエリの変更などのパフォーマンスの問題を確認します。Performance Insights ダッシュボードでは、期間を選択してパフォーマンス分析レポートを作成できます。レポートに 1 つ以上のタグを追加することもできます。

この機能を使用するには、有料利用枠の保持期間を使用している必要があります。詳細については、「[Performance Insights の料金とデータ保持](USER_PerfInsights.Overview.cost.md)」を参照してください。

レポートは **[パフォーマンス分析レポート - 新規]** タブで選択して表示できます。レポートには、インサイト、関連するメトリクス、およびパフォーマンス問題を解決するための推奨事項が含まれています。レポートは、Performance Insights 保存期間中は表示できます。

レポート分析期間の開始時刻が保存期間外の場合、レポートは削除されます。保存期間が終了する前にレポートを削除することもできます。

パフォーマンス問題を検出し、DB インスタンスの分析レポートを生成するには、Performance Insights を有効にする必要があります。Performance Insights をオンにする方法の詳細については、「[Amazon RDS の Performance Insights の有効化と無効化](USER_PerfInsights.Enabling.md)」を参照してください。

この機能のリージョン、DB エンジン、およびインスタンスクラスのサポート情報については、「[Amazon RDS DB エンジン、リージョン、およびインスタンスクラスでサポートされている Performance Insights 機能](USER_PerfInsights.Overview.Engines.md#USER_PerfInsights.Overview.PIfeatureEngnRegSupport)」を参照してください。

以下のセクションでは、パフォーマンス分析レポートの作成、表示、タグの追加、削除を行うことができます。

**Topics**
+ [Performance Insights でのパフォーマンス分析レポートの作成](USER_PerfInsights.UsingDashboard.CreatingPerfAnlysisReport.md)
+ [Performance Insights でのパフォーマンス分析レポートの表示](USER_PerfInsights.UsingDashboard.ViewPerfAnalysisReport.md)
+ [Performance Insights のパフォーマンス分析レポートにタグを追加する](USER_PerfInsights.UsingDashboard.ManagePerfAnalysisReportTags.md)
+ [Performance Insights のパフォーマンス分析レポートの削除](USER_PerfInsights.UsingDashboard.DeletePerfAnalysisReport.md)

# Performance Insights でのパフォーマンス分析レポートの作成
<a name="USER_PerfInsights.UsingDashboard.CreatingPerfAnlysisReport"></a>

Performance Insights ダッシュボードで特定期間のパフォーマンス分析レポートを作成できます。期間を選択し、分析レポートに 1 つ以上のタグを追加できます。

分析期間は 5 分から 6 日間までに設定できます。分析開始時刻の前に、少なくとも 24 時間のパフォーマンスデータが必要です。

この機能のリージョン、DB エンジン、およびインスタンスクラスのサポート情報については、「[Amazon RDS DB エンジン、リージョン、およびインスタンスクラスでサポートされている Performance Insights 機能](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. ナビゲーションペインで、**[Performance Insights]** を選択します。

1. DB インスタンスを選択します。

1. Performance Insights ダッシュボードの **[データベース負荷]** セクションで **[パフォーマンスを分析]** を選択します。

   期間を設定するフィールドと、パフォーマンス分析レポートに 1 つ以上のタグを追加するフィールドが表示されます。  
![\[分析レポートを作成するためのフィールドが表示されている Performance Insights ダッシュボード\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/PI_CreateAnalysisReport.png)

1. 期間を選択します。右上の **[相対範囲]** または **[絶対範囲]** で期間を設定した場合は、この期間内の分析レポートの日付と時刻のみを入力または選択できます。この期間以外の分析期間を選択すると、エラーメッセージが表示されます。

    期間を設定するには、次のいずれかを行います。
   + DB 負荷チャートのいずれかのスライダーを押してドラッグします。

     **[パフォーマンス分析期間]** ボックスに選択した期間が表示され、DB 負荷チャートに選択した期間が強調表示されます。
   + **[パフォーマンス分析期間]** ボックスで、**[開始日]**、**[開始時間]**、**[終了日]**、および **[終了時間]** を選択します。  
![\[分析期間が選択された Performance Insights ダッシュボード\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/PI_CreateAnalysisRep_TimePeriod.png)

1. (オプション) **[キー]** と **[値 - *オプション*]** を入力して、レポートにタグを追加します。  
![\[新しいタグを追加するためのフィールドを含む Performance Insights ダッシュボード\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/PI_CreateAnalysisRep_AddTag.png)

1. **[パフォーマンスを分析]** を選択します。

   バナーに、レポート生成が成功したか失敗したかを示すメッセージが表示されます。メッセージには、レポートを表示するためのリンクも記載されています。

   次の例は、レポート作成成功メッセージを含むバナーを示しています。  
![\[分析レポート作成成功メッセージバナー\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/PI_CreateAnaysisRep_SuccessMsg.png)

   レポートは **[パフォーマンス分析レポート - 新規]** タブで表示できます。

パフォーマンス分析レポートは、AWS CLI を使用して作成できます。AWS CLI を使用してレポートを作成する方法の例については、「[一定期間のパフォーマンス分析レポートの作成](USER_PerfInsights.API.Examples.md#USER_PerfInsights.API.Examples.CreatePerfAnalysisReport)」を参照してください。

# Performance Insights でのパフォーマンス分析レポートの表示
<a name="USER_PerfInsights.UsingDashboard.ViewPerfAnalysisReport"></a>

**[パフォーマンス分析レポート - 新規]** タブには、DB インスタンスについて作成されたすべてのレポートが表示されます。各レポートには、以下が表示されます。
+ **[ID]**: レポートの一意識別子。
+ **[名前]**: レポートに追加されたタグキー。
+ **[レポート作成時間]**: レポートを作成した時刻。
+ **[分析開始時間]**: レポート内の分析の開始時刻。
+ **[分析終了時間]**: レポート内の分析の終了時刻。

**パフォーマンス分析レポートを表示するには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、**[Performance Insights]** を選択します。

1. 分析レポートを表示する DB インスタンスを選択します。

1. 下にスクロールして、Performance Insights ダッシュボードの **[パフォーマンス分析レポート - 新規]** タブを選択します。

   異なる期間のすべての分析レポートが表示されます。

1. 表示するレポートの **[ID]** を選択します。

   複数のインサイトが特定された場合、DB 負荷チャートにはデフォルトで分析期間全体が表示されます。レポートで 1 つのインサイトが特定された場合、DB 負荷チャートにはデフォルトでそのインサイトが表示されます。

   ダッシュボードには、**[タグ]** セクションにレポートのタグも一覧表示されます。

   次の例は、レポートの分析期間全体を示しています。  
![\[分析レポート期間全体を示している DB 負荷チャート\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/PI_EntireAnalysisRep.png)

1. レポートで複数のインサイトが特定された場合、**[データベース負荷に関するインサイト]** リストで、表示するインサイトを選択します。

   ダッシュボードには、インサイトメッセージ、インサイトの期間が強調表示された DB 負荷チャート、分析と推奨事項、およびレポートタグのリストが表示されます。

   次の例は、レポートの DB 負荷インサイトを示しています。  
![\[レポート内のインサイトを示す DB 負荷チャート\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/PI_AnalysisRepInsight_chart.png)  
![\[レポートのインサイト分析と推奨セクション\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/PI_AnalysisRepInsight_Recommendations.png)

# Performance Insights のパフォーマンス分析レポートにタグを追加する
<a name="USER_PerfInsights.UsingDashboard.ManagePerfAnalysisReportTags"></a>

レポートを作成または表示するときに、タグを追加できます。レポートには最大 50 個のタグを追加できます。

タグを追加するアクセス許可が必要です。Performance Insights のアクセスポリシーの詳細については、「[Performance Insights 用のアクセスポリシーの設定](USER_PerfInsights.access-control.md)」を参照してください。

レポートの作成時に 1 つ以上のタグを追加するには、手順 [Performance Insights でのパフォーマンス分析レポートの作成](USER_PerfInsights.UsingDashboard.CreatingPerfAnlysisReport.md) のステップ 6 を参照してください。

**レポートを表示するときに 1 つ以上のタグを追加するには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、**[Performance Insights]** を選択します。

1. DB インスタンスを選択します。

   この DB インスタンスに Performance Insights ダッシュボードが表示されます。

1. 下にスクロールして、**パフォーマンス分析レポート - 新規]** タブを選択します。

1. タグを追加するレポートを選択します。

   ダッシュボードにレポートが表示されます。

1. **[タグ]** までスクロールして、**[タグを管理]** を選択します。

1. [**新しいタグを追加**] をクリックします。

1. **[キー]** と **[値 - *オプション*]** を入力し、**[新しいタグを追加]** を選択します。

   次の例では、選択したレポートに新しいタグを追加するオプションを提供しています。  
![\[レポートに新しいタグを追加するための [タグの管理] ウィンドウ\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/PI_AddTag_ManageTags.png)

   レポート用に新しいタグが作成されます。

   ダッシュボードの **[タグ]** セクションにレポートのタグのリストが表示されます。レポートからタグを削除する場合は、タグの横の **[削除]** を選択します。

# Performance Insights のパフォーマンス分析レポートの削除
<a name="USER_PerfInsights.UsingDashboard.DeletePerfAnalysisReport"></a>

**[パフォーマンス分析レポート]** タブに表示されているレポートのリストから、またはレポートの表示中にレポートを削除できます。

**レポートを削除するには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、**[Performance Insights]** を選択します。

1. DB インスタンスを選択します。

   この DB インスタンスに Performance Insights ダッシュボードが表示されます。

1. 下にスクロールして、**パフォーマンス分析レポート - 新規]** タブを選択します。

1. 削除するレポートを選択し、右上の **[削除]** を選択します。  
![\[削除対象としてレポートが選択されている Performance Insights ダッシュボード\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/PI_DeleteAnalysisRep.png)

   確認ウィンドウが表示されます。確認を選択すると、レポートは削除されます。

1. (オプション) 削除するレポートの **ID** を選択します。

   レポートページの右上にある **[削除]** を選択します。

   確認ウィンドウが表示されます。確認を選択すると、レポートは削除されます。

# Performance Insights のトップ SQL タブを使用したクエリの分析
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics"></a>

Amazon RDS Performance Insights ダッシュボードでは、実行中のクエリや最近のクエリに関する情報を **[Top dimensions]** (上位ディメンション) テーブルの**[Top SQL]** (上位の SQL) タブで見ることができます。この情報を使用して、クエリをチューニングできます。

**Topics**
+ [[トップ 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)

## [トップ SQL] タブの概要
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL"></a>

デフォルトでは、[**Top SQL**] (上位の SQL) タブはデータベースロードに最も貢献している 25 クエリを表示します。クエリをチューニングするために、クエリテキスト、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/ja_jp/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/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_4b.png)


**注記**  
SQL ダイジェストでは、類似した SQL ステートメントがグループ化されますが、機密情報は編集されません。

Performance Insights では、Oracle SQL テキストが **[Unknown]** (不明) と表示される可能性があります。次のような状況では、テキストはこの状態になります。
+ `SYS` 以外の Oracle データベースユーザーはアクティブですが、現在 SQL を実行していません。例えば、並列クエリが完了すると、クエリコーディネータはヘルパープロセスがセッション統計を送信するのを待ちます。待機中は、クエリテキストに **[Unknown]** (不明) と表示されます。
+ Standard Edition 2 の RDS for Oracle インスタンスの場合、リソースマネージャは並列スレッドの数を制限します。この作業を行うバックグラウンドプロセスにより、クエリテキストに [**不明**] と表示されます。

### SQL 統計
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.statistics"></a>

*SQL 統計*は、SQL クエリに関するパフォーマンス関連のメトリックです。例えば、Performance Insights には 1 秒あたりの実行数や 1 秒あたりの処理行数が表示されることがあります。Performance Insights は、最も一般的なクエリのみの統計を収集します。通常、これらは Performance Insights ダッシュボードに負荷別に表示される上位のクエリと一致します。

[**トップ SQL**] テーブル内の各行は、次の例のように、SQL ステートメントまたはダイジェストに関連する統計を示します。

![\[上位の SQL\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_4.png)


Performance Insights は、SQL 統計で `0.00` および `-` (不明) をレポートする可能性があります。この状況は、以下の条件で発生します。
+ サンプルが 1 つだけ存在する。例えば、Performance Insights は、`pg_stat_statements` ビューからの複数のサンプルに基づいて、RDS PostgreSQL クエリの変更率を計算します。ワークロードが短時間実行されると、Performance Insights ではサンプルが 1 つしか収集されない場合があります。つまり、変更率を計算できません。不明な値はダッシュ (`-`) で表されます。
+ 2 つのサンプルが同じ値を持っている。Performance Insights は、変更が発生していないため、変更率を計算することができず、変化率を `0.00` と報告します。
+ RDS PostgreSQL ステートメントに有効な識別子がない。PostgreSQL は、構文解析と分析の後にのみ、ステートメントの識別子を作成します。したがって、PostgreSQL の内部インメモリ構造に、識別子なしでステートメントが存在する可能性があります。Performance Insights は内部メモリ内構造を 1 秒に 1 回サンプリングするため、低レイテンシーのクエリは 1 つのサンプルに対してのみ表示されることがあります。このサンプルでクエリ識別子を使用できない場合、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>

[**トップ SQL**] の [**待機別の負荷 (AAS)**] 列は、上位の各ロード項目に関連付けられているデータベースロードの割合を示しています。この列には、**DB 負荷グラフ**で現在選択されているグループ化に応じて、その項目に対する負荷が反映されます。平均アクティブセッション（AAS）の詳細については、[平均アクティブセッション](USER_PerfInsights.Overview.ActiveSessions.md#USER_PerfInsights.Overview.ActiveSessions.AAS) を参照してください。

例えば、**DB 負荷グラフ**を待機状態別にグループ化できます。上位負荷項目のテーブルで SQL クエリを調べます。この場合は、[**待機別の DB 負荷**] バーは、クエリが貢献している待機状態の量を示すために、サイズ、セグメント、および色で分けられています。また、選択したクエリに影響を与えている待機状態も示されます。

![\[待機別の DB 負荷\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_6.png)


### SQL 情報の表示
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.SQL-information"></a>

[**トップ SQL**] テーブルで、ステートメントを開いてその情報を表示できます。下部のペインに情報が表示されます。

![\[リテラルクエリが選択された上位の SQL テーブル\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf-insights-sql-ids-open.png)


SQL ステートメントに関連付けられているタイプの識別子 (ID) は以下のとおりです。
+ **Support SQL ID** - SQL ID のハッシュ値。この値は、AWS サポートを利用しているときに SQL ID を参照するためだけのものです。AWS サポートが実際の SQL ID や SQL テキストにアクセスすることはできません。
+ **ダイジェスト ID のサポート** - Digest ID のハッシュ値。この値は、AWS サポートを利用しているときにダイジェスト ID を参照するためだけのものです。AWSサポートが実際のダイジェスト ID や SQL テキストにアクセスすることはできません。

### 統計設定を選択する
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.Preferences"></a>

「**設定**」 アイコンを選択すると、[**トップ SQL**] タブに表示される統計を制御できます。

![\[統計設定\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf-insights-sql-ids-preferences-icon.png)


[**設定**] アイコンを選択すると、[**設定**] ウィンドウが開きます。次のスクリーンショットは、**[Preferences]** (環境設定) ウィンドウの例です。

![\[設定ウィンドウ\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf-insights-sql-ids-preferences.png)


[**トップ SQL**] タブに表示させたい統計を有効にするには、マウスを使用してウィンドウの下部までスクロールし、[**続行**] を選択します。

Amazon RDS エンジンの秒単位または呼び出し単位の統計の詳細については、[Performance Insights の SQL 統計](sql-statistics.md) の「エンジン固有の SQL 統計」セクションを参照してください。

# Performance Insights ダッシュボードでより多くの SQL テキストにアクセスする
<a name="USER_PerfInsights.UsingDashboard.SQLTextSize"></a>

デフォルトでは、[**トップ SQL**] テーブルの各行には SQL ステートメントごとに 500 バイトの SQL テキストが表示されます。

![\[500 バイトの SQL\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf-insights-top-sql-bytes.png)


SQL ステートメントのサイズが 500 バイトを超える場合、**[Top SQL]** (トップ SQL) テーブルの **[SQL text]** (SQL テキスト) セクションでテキストの表示量を増やすことができます。この場合、**[SQL text]** (SQL テキスト) に表示されるテキストの最大長は 4 KB です。コンソールで導入されるこの制限には、データベースエンジンによって設定された制限が適用されます。**[SQL text]** (SQL テキスト) に表示されているテキストを保存するには、**[Download]** (ダウンロード) を選択します。

**Topics**
+ [Amazon RDS エンジン のテキストサイズの制限](#sql-text-engine-limits)
+ [Amazon RDS for PostgreSQL DB インスタンスの SQL テキスト制限の設定](USER_PerfInsights.UsingDashboard.SQLTextLimit.md)
+ [Performance Insights ダッシュボードでの SQL テキストの表示とダウンロード](view-download-text.md)

## Amazon RDS エンジン のテキストサイズの制限
<a name="sql-text-engine-limits"></a>

SQL テキストをダウンロードするときに、データベースエンジンがテキストの最大長を決定します。エンジンごとのダウンロードできる SQL テキストの上限は次のとおりです。


| DB エンジン | ダウンロードされるテキストの最大長 | 
| --- | --- | 
| Amazon RDS for MySQL および MariaDB | Performance Schema が有効になっている場合、長さは 4,096 バイトに固定されます。Performance Schema が有効になっていない場合、長さは 65,535 バイトに固定されます。 | 
| Amazon RDS for Microsoft SQL Server | 4,096 文字 | 
| 「Amazon RDS for Oracle」 | 1,000 バイト | 

Performance Insights コンソールの **[SQL text]** (SQL テキスト) では、エンジンが返すテキストが最大値まで表示できます。例えば、 MySQL は、Performance Insights に対して最大 1 KB を返します。元のクエリが大きい場合でも、収集して表示できるのは 1 KB のみです。したがって、**[SQL text]** (SQL テキスト) でクエリを表示するか、ダウンロードすると、Performance Insights は同じバイト数を返します。

AWS CLI または API を使用する場合、Performance Insights には、コンソールで適用される 4 KB の制限がありません。`DescribeDimensionKeys` と `GetResourceMetrics` は、最大で 500 バイトを返します。

**注記**  
`GetDimensionKeyDetails` はクエリ全体を返しますが、サイズにはエンジンの制限が適用されます。

# Amazon RDS for PostgreSQL DB インスタンスの SQL テキスト制限の設定
<a name="USER_PerfInsights.UsingDashboard.SQLTextLimit"></a>

Amazon RDS for PostgreSQL は、テキストを異なる方法で処理します。DB インスタンスパラメータ `track_activity_query_size` を使用して、テキストサイズの制限を設定できます。このパラメータには次の特徴があります。

デフォルトのテキストサイズ  
Amazon RDS for PostgreSQL バージョン 9.6 では、`track_activity_query_size` パラメータのデフォルト設定は 1,024 バイトです。Amazon RDS for PostgreSQL バージョン 10 以降では、デフォルトは 4,096 バイトです。

最大テキストサイズ  
Amazon RDS for PostgreSQL バージョン 12 以前の場合、`track_activity_query_size` の制限は 102,400 バイトです。バージョン 13 以降の場合、最大値は 1 MB です。  
エンジンが Performance Insights に対して 1 MB を返す場合、コンソールでは最初の 4 KB のみが表示されます。クエリをダウンロードする場合、1 MB すべてを取得できます。この場合、表示する場合とダウンロードする場合では異なるバイト数が返されます。`track_activity_query_size` DB インスタンスパラメータの詳細については、PostgreSQL ドキュメントで「[ランタイム統計](https://www.postgresql.org/docs/current/runtime-config-statistics.html)」を参照してください。

SQL テキストのサイズを大きくするには、`track_activity_query_size` の制限を引き上げます。パラメータを変更するには、Amazon RDS for PostgreSQL DB インスタンスに関連付けられているパラメータグループのパラメータ設定を変更します。

**インスタンスでデフォルトのパラメータグループが使用される際に設定を変更するには**

1. 該当する DB エンジンおよび DB エンジンバージョンの新しい DB インスタンスパラメータグループを作成します。

1. 新しいパラメータグループにパラメータを設定します。

1. 新しいパラメータグループを DB インスタンスに関連付けます。

DB インスタンスパラメータの設定の詳細については、「[Amazon RDS の DB パラメータグループのパラメータの変更](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. DB インスタンスを選択します。

1. Performance Insights ダッシュボードの **[トップ SQL]** タブまでスクロールします。

1. プラス記号を選択して SQL ダイジェストを展開し、ダイジェストの子クエリのいずれかを選択します。

   500 バイトを超える SQL ステートメントは、次のイメージのように表示されます。  
![\[テキストサイズが大きい SQL ステートメント\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf-insights-large-text-1.png)

1. 下部にある [**SQL テキスト**] タブまでスクロールします。  
![\[SQL 情報セクションに SQL テキストがさらに表示される\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf-insights-large-text-2.png)

   Performance Insights ダッシュボードは、各 SQL ステートメントの最大 4,096 バイトまでを表示できます。

1. (オプション) [**コピー**] を選択して、表示された SQL ステートメントをコピーするか、[**ダウンロード**] を選択して、DB エンジンに応じた最大サイズの SQL ステートメントをダウンロードします。
**注記**  
SQL ステートメントをコピーまたはダウンロードするには、ポップアップブロッカーを無効にします。

# Performance Insights ダッシュボードでの SQL 統計の表示
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.AnalyzingSQLLevel"></a>

Performance Insights ダッシュボードでは、SQL 統計を [**データベース負荷**] グラフの [**トップ SQL**] タブで見ることができます。

**SQL 統計を表示するには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、**[Performance Insights]** を選択します。

1. ページの上部で、SQL 統計を表示するデータベースを選択します。

1. ページの下部までスクロールし、[**トップ SQL**] タブを選択します。

1. 個々のステートメント またはダイジェストクエリを選択します。  
![\[クエリを実行するためのメトリクスの表示\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_per_sql_sql.png)

1. グラフの右上にある歯車のアイコンを選択して、表示する統計を選択します。Amazon RDS エンジンの SQL 統計の説明については、「[Performance Insights の SQL 統計](sql-statistics.md)」を参照してください。

   次の例は、Oracle DB インスタンスの統計設定を示しています。  
![\[Oracle DB インスタンスのクエリを実行するためのメトリクス\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_per_sql_pref_oracle.png)

   次の例は、MariaDB および MySQL DB インスタンスの設定を示しています。  
![\[MariaDB および MySQL DB インスタンスのクエリを実行するためのメトリクスの設定。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_per_sql_pref_ams.png)

1. 設定を保存するには [保存] を選択します。

   [**トップ SQL**] テーブルが更新されます。

   次の例は、Oracle SQL クエリの統計を示しています。  
![\[SQL クエリの統計\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_per_sql_stats_oracle.png)

# Oracle PDB の上位負荷の分析
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.TopPDB"></a>

Oracle コンテナ DB (CDB) の負荷を分析する際、DB 負荷に最も寄与しているプラグ可能なデータベース (PDB) を特定できます。また、同様のクエリを実行している個々の PDB のパフォーマンスを比較して、パフォーマンスを微調整することもできます。Oracle CDB の詳細については、「[Oracle データベースアーキテクチャの RDS](oracle-multi-architecture.md)」を参照してください。

Amazon RDS Performance Insights ダッシュボードでは、プラグ可能なデータベースに関する情報は、**[ディメンション]** タブの **[上位 PDB]** タブにあります。

この機能のリージョン、DB エンジン、およびインスタンスクラスのサポート情報については、「[Amazon RDS DB エンジン、リージョン、およびインスタンスクラスでサポートされている Performance Insights 機能](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 インスタンスを選択します。

   この DB インスタンスに Performance Insights ダッシュボードが表示されます。

1. **[データベース負荷 (DB 負荷)]** セクションで、[スライス基準] の横にある **[プラグ可能なデータベース (PDB)]** を選択します。

   平均アクティブセッショングラフには、負荷が最も高い PDB が表示されます。PDB 識別子は、色分けされた四角形の右側に表示されます。各識別子は PDB を一意に識別します。  
![\[PDB 負荷の平均アクティブセッショングラフ\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_topPDB_AAS.png)

1. 下部にある [**トップ SQL**] タブまでスクロールします。

   次の例では、同じ SQL クエリと、それが複数の PDB に駆動する負荷を確認できます。  
![\[複数の PDB に対する同じ SQL クエリの負荷\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_topPDB_ex1.png)

   次の例では、1 つの PDB が CDB 内の他の PDB よりも高い負荷を処理しています。  
![\[PDB の SQL クエリ負荷が高い\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf_insights_topPDB_ex2.png)

   Oracle CDB の詳細については、「[CDBs and PDBs](https://docs.oracle.com/en/database/oracle/oracle-database/21/cncpt/CDBs-and-PDBs.html#GUID-FC2EB562-ED31-49EF-8707-C766B6FE66B8)」を参照してください。

# Amazon RDS の Performance Insights ダッシュボードを使用した実行プランの分析
<a name="USER_PerfInsights.UsingDashboard.AnalyzingPlans"></a>

Amazon RDS Performance Insights ダッシュボードでは、Oracle および SQL Server DB インスタンスの実行プランに関する情報を確認できます。この情報を使用して、どのプランが DB 負荷に最も影響しているかを知ることができます。

Oracle または SQL Server の実行プランを分析するには、以下のトピックを参照してください。

**実行プランの分析**
+ [Amazon RDS の Performance Insights ダッシュボードを使用した Oracle 実行プランの分析](USER_PerfInsights.UsingDashboard.AccessPlans.md)
+ [Amazon RDS の Performance Insights ダッシュボードを使用した SQL Server 実行プランの分析](USER_PerfInsights.UsingDashboard.AccessPlansSqlServer.md)

## Amazon RDS の実行プランの分析の概要
<a name="USER_PerfInsights.UsingDashboard.AnalyzingPlans.Overview"></a>

Amazon RDS Performance Insights ダッシュボードを使用して、Oracle および SQL Server DB インスタンスの DB 負荷に最も影響しているプランを確認できます。

 例えば、特定の時点の上位の 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 クエリでどのプランが使用されているかを確認する。

  例えば、DB の負荷の大部分は、プラン A とプラン B を使用したクエリによって生成され、プラン C を使用する割合はごく小規模だということがあります。
+ 同じクエリについてさまざまなプランを比較する。

  前の例では、製品 ID を除けば、3 つのクエリは同一です。この内 2 つのクエリでプラン A が使用されますが、1 つのクエリではプラン B を使用しています。2 つのプランの違いを確認するには、Performance Insights を使用します。
+ クエリが新しいプランに切り替わった時期を確認する。

  プラン A を使用するクエリで、特定のタイミングでプラン B に切り替えられたことを確認できます。この時点で、データベースに変更があったかどうか。例えば、テーブルが空の場合、オプティマイザはテーブル全体に対するスキャンを選択することがあります。仮にテーブルに 100 万行がロードされたとすると、オプティマイザはインデックス範囲のスキャンに切り替えます。
+ コストが最も高いプランの特定のステップにドリルダウンします。

  例えば、実行時間の長いクエリで、等価結合に結合条件がないと表示される場合があります。この欠落条件により、2 つのテーブルのすべての行を結合するデカルト結合が強制的に実行されます。

上記のタスクは、Performance Insights のプランキャプチャ機能を使用して実行できます。クエリは、待機イベントと上位 SQL でスライスできるのと同様に、プランのディメンションでスライスできます。

# Amazon RDS の Performance Insights ダッシュボードを使用した Oracle 実行プランの分析
<a name="USER_PerfInsights.UsingDashboard.AccessPlans"></a>

Oracle Database の DB 負荷を分析する際に、DB 負荷に最も影響しているプランを知りたい場合があります。DB 負荷に最も影響しているプランを特定するには、Performance Insights のプランキャプチャ機能を使用できます。

**コンソールを使用して Oracle 実行プランを分析するには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**Performance Insights**] を選択します。

1. Oracle DB インスタンスを選択します。この DB インスタンスに Performance Insights ダッシュボードが表示されます。

1. [**データベース負荷 (DB 付加)**] セクションで、[**スライス基準**] の横にある [**プラン**] をクリックします。

   平均アクティブセッションのグラフには、上位 SQL ステートメントで使用されているプランが表示されます。プランのハッシュ値は、色分けされた四角形の右側に表示されます。各ハッシュ値によりプランを一意に識別できます。  
![\[プランによるスライス化\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/pi-slice-by-plans.png)

1. 下部にある [**トップ SQL**] タブまでスクロールします。

   次の例では、上位 SQL ダイジェストに 2 つのプランがあります。ステートメント内で疑問符を付けることで、それがダイジェストだと伝えることができます。  
![\[ダイジェストプランを選択する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/top-sql-plans-unselected.png)

1. ダイジェストを選択して、そのコンポーネントステートメントを展開します。

   以下の例では、`SELECT` ステートメントがダイジェストクエリです。ダイジェスト内のコンポーネントクエリでは、2 つの異なるプランが使用されます。プランに付けられた色は、データベースの負荷チャートのものと対応しています。ダイジェスト内のプランの総数が、2 列目に表示されます。  
![\[ダイジェストプランを選択する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/pi-digest-plan.png)

1. 下にスクロールし、[**ダイジェストクエリのプラン**] リストから、比較する 2 つの [**プラン**] を選択します。

   1 つのクエリについて、一度に 1 つまたは 2 つのプランを表示できます。次のスクリーンショットは、ダイジェスト内で、ハッシュ 2032253151 とハッシュ 1117438016 を含む 2 つのプランを比較しています。次の例では、このダイジェストクエリを実行する平均アクティブセッションの 62% が左側のプランを使用しているのに対し、38% は右側のプランを使用しています。  
![\[プランを並べて比較する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/pi-compare-plan.png)

   この例では、それぞれのプランに重要な相違点があります。プラン 2032253151 のステップ 2 ではインデックススキャンが使用されますが、プラン 1117438016 ではフルテーブルスキャンが使用されます。ほとんどの場合、行数が多いテーブルでは、インデックススキャンを使用すると 1 行のクエリを高速化できます。  
![\[プランを並べて比較する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/pi-table-access.png)

1. (オプション) [**コピー**] をクリックし、クリップボードにプランをコピーします。あるいは、[**ダウンロード**] により、ハードドライブにプランを保存します。

# Amazon RDS の Performance Insights ダッシュボードを使用した SQL Server 実行プランの分析
<a name="USER_PerfInsights.UsingDashboard.AccessPlansSqlServer"></a>

SQL Server データベースの DB 負荷を分析する際に、DB 負荷に最も影響しているプランを確認することもできます。DB 負荷に最も影響しているプランを特定するには、Performance Insights のプランキャプチャ機能を使用できます。

**コンソールを使用して SQL Server 実行プランを分析するには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**Performance Insights**] を選択します。

1. SQL Server DB インスタンスを選択します。この DB インスタンスに Performance Insights ダッシュボードが表示されます。

1. [**データベース負荷 (DB 付加)**] セクションで、[**スライス基準**] の横にある [**プラン**] をクリックします。

   平均アクティブセッションのグラフには、上位 SQL ステートメントで使用されているプランが表示されます。プランのハッシュ値は、色分けされた四角形の右側に表示されます。各ハッシュ値によりプランを一意に識別できます。  
![\[プランによるスライス化\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/pi-slice-by-plans-sqlserver.png)

1. 下部にある [**トップ SQL**] タブまでスクロールします。

   次の例では、上位の SQL ダイジェストに 3 つのプランがあります。SQL ステートメントに疑問符が付いている場合は、そのステートメントがダイジェストであることを示しています。SQL ステートメント全体を表示するには、**[SQL ステートメント]** 列の値を選択します。  
![\[ダイジェストプランを選択する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/top-sql-plans-unselected-sqlserver.png)

1. ダイジェストを選択して、そのコンポーネントステートメントを展開します。

   以下の例では、`SELECT` ステートメントがダイジェストクエリです。ダイジェスト内のコンポーネントクエリでは、3 つの異なる実行プランを使用します。プランに付けられた色は、データベースの負荷チャートに対応しています。  
![\[ダイジェストプランを選択する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/pi-digest-plan-sqlserver.png)

1. 下にスクロールし、[**ダイジェストクエリのプラン**] リストから、比較する 2 つの [**プラン**] を選択します。

   1 つのクエリについて、一度に 1 つまたは 2 つのプランを表示できます。次のスクリーンショットは、ダイジェスト内の 2 つのプランを比較しています。次の例では、このダイジェストクエリを実行する平均アクティブセッションの 40% が左側のプランを使用し、28% が右側のプランを使用しています。  
![\[プランを並べて比較する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/pi-compare-plan-sqlserver.png)

   前の例では、プラン間に重要な違いがあります。左側のプランのステップ 2 ではテーブルスキャンを使用しているのに対し、右側のプランではクラスター化インデックススキャンを使用しています。行数が多いテーブルでは、ほとんどの場合、1 行を取得するクエリはクラスター化インデックススキャンより高速です。

1. (オプション) [プランの詳細] テーブルの **[設定]** アイコンを選択して、列の表示と順序をカスタマイズします。次のスクリーンショットでは、[プランの詳細] テーブルに **[出力リスト]** 列が 2 番目の列として表示されています。  
![\[[プランの詳細] テーブルの列の表示と順序をカスタマイズする\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/pi-plan-fields-sql-server.png)

1. (オプション) [**コピー**] をクリックし、クリップボードにプランをコピーします。あるいは、[**ダウンロード**] により、ハードドライブにプランを保存します。

**注記**  
Performance Insights は、階層ツリーテーブルを使用して推定実行プランを表示します。このテーブルには、各ステートメントの部分的な実行情報が含まれています。[プランの詳細] テーブルの列の詳細については、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 ドキュメントの「[Display an Estimated Execution Plan](https://learn.microsoft.com/en-us/sql/relational-databases/performance/display-the-estimated-execution-plan)」を参照してください。

# Performance Insights のプロアクティブ推奨事項の表示
<a name="USER_PerfInsights.InsightsRecommendationViewDetails"></a>

Amazon RDS Performance Insights は特定のメトリクスを監視し、指定されたリソースで潜在的に問題と見なされる可能性があるレベルを分析することで自動的にしきい値を作成します。新しいメトリクス値が事前定義されたしきい値を一定期間にわたって超えた場合に、Performance Insights はプロアクティブ推奨事項を生成します。この推奨事項は、将来のデータベースパフォーマンスへの影響を防ぐのに役立ちます。これらのプロアクティブ推奨事項を受け取るには、有料利用枠の保持期間を使用して Performance Insights を有効にする必要があります。

Performance Insights をオンにする方法の詳細については、「[Amazon RDS の Performance Insights の有効化と無効化](USER_PerfInsights.Enabling.md)」を参照してください。Performance Insights の料金とデータ保持については、「[Performance Insights の料金とデータ保持](USER_PerfInsights.Overview.cost.md)」を参照してください。

プロアクティブ推奨事項でサポートされているリージョン、DB エンジン、インスタンスクラスについては、「[Amazon RDS DB エンジン、リージョン、およびインスタンスクラスでサポートされている Performance Insights 機能](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/ja_jp/AmazonRDS/latest/UserGuide/images/RecommendationProactive-RecSummary.png)
   + **[メトリクス]** – 検出された問題のグラフ。各グラフには、リソースのベースライン動作によって決まるしきい値と、問題の開始時刻から報告されたメトリクスのデータが表示されます。  
![\[コンソールの [メトリクス] セクションを示すプロアクティブ推奨事項の推奨事項の詳細ページ。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/RecommedationProactive_Metrics.png)
   + **[分析と推奨事項]** — 推奨事項と示唆された推奨事項の理由。  
![\[コンソールの[分析と推奨事項] セクションを示すプロアクティブ推奨事項の推奨事項の詳細ページ。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/ProactiveRecommendation-AnalysisAndRec.png)

   問題の原因を確認し、示唆された推奨アクションを実行して問題を解決するか、右上の **[閉じる]** を選択して推奨事項を却下できます。

# Performance Insights API for Amazon RDS によるメトリクスの取得
<a name="USER_PerfInsights.API"></a>

Performance Insights がオンになっている場合、API はインスタンスのパフォーマンスを可視化します。Amazon CloudWatch Logs は、AWS のサービスをモニタリングしたメトリクスの信頼性のある提供元です。

Performance Insightsは、平均アクティブ・セッション(AAS)として測定されるデータベースロードのドメイン固有のビューを提供します。このメトリクスはAPI利用者には2次元時系列データセットのように見えます。データの時間ディメンションは、クエリされた時間範囲内の各時点のDBロード・データを提供します。各時点で、その時点で計測された `SQL`、`Wait-event`、`User`、`Host` などのリクエストされたディメンションに関する負荷全体が分解されます。

Amazon RDS Performance Insights では、Amazon RDS DB インスタンス をモニタリングし、データベースパフォーマンスの分析とトラブルシューティングを行うことができます。Performance Insights は、AWS マネジメントコンソール で表示することができます。また、Performance Insights では独自のデータをクエリできるように、パブリック API も提供されています。API を使用して、次を実行できます。
+ データベースにデータをオフロードする
+ Performance Insights データを既存のモニタリングダッシュボードに追加する
+ モニタリングツールを構築する

Performance Insights API を使用するには、いずれかの Amazon RDS DB インスタンスで Performance Insights を有効にします。Performance Insights の有効化については、「[Amazon RDS の Performance Insights の有効化と無効化](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 コマンド  |  説明  | 
| --- | --- | --- | 
|  [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)  |  DB インスタンスの特定の期間のパフォーマンス分析レポートを作成します。結果は、レポートの固有識別子である `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)  |  DB インスタンスまたはデータソースの指定されたディメンショングループの属性を取得します。例えば、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)  |  さまざまな機能に関するメタデータを取得します。例えば、メタデータにより、特定の DB インスタンスで何等かの機能が有効化されているか無効化されているかを、示すことができます。  | 
|  [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)  |  DB インスタンスを指定しながら、指定されたメトリクスタイプでクエリが可能なメトリクスをすべて取得します。  | 
|  `[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)  | DB インスタンスについて入手可能なすべての分析レポートを取得します。レポートは、各レポートの開始時間に基づいて一覧表示されます。 | 
|  `[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)  |  メタデータタグをリソースから削除します。  | 

Performance Insights の時系列メトリクスの取得と AWS CLI の例の詳細については、以下のトピックを参照してください。

**Topics**
+ [Performance Insights の時系列メトリクスの取得](USER_PerfInsights.API.TimeSeries.md)
+ [AWS CLIPerformance Insights での の例](USER_PerfInsights.API.Examples.md)

# Performance Insights の時系列メトリクスの取得
<a name="USER_PerfInsights.API.TimeSeries"></a>

`GetResourceMetrics` オペレーションでは、1 つ以上の時系列メトリクスを Performance Insights データから取得します。`GetResourceMetrics` には、メトリクスおよび期間が必要であり、データポイントのリストを含むレスポンスが返ります。

例えば、AWS マネジメントコンソール は、次のイメージのように、[**カウンターメトリクス**] チャートと [**データベースロード**] チャートの入力に `GetResourceMetrics` を使用します。

![\[カウンターメトリクスグラフおよびデータベースロードグラフ\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf-insights-api-charts.png)


`GetResourceMetrics` によって返るメトリクスはすべて、`db.load` の例外を除き、スタンダードの時系列メトリクスです。このメトリクスは、[**データベースロード**] グラフに表示されます。この `db.load` メトリクスは、*ディメンション*と呼ばれるサブコンポーネントに分割できるため、他の時系列メトリクスとは異なります。前のイメージでは、`db.load` は分割され、`db.load` を構成する待機状態によってグループ化されています。

**注記**  
`GetResourceMetrics` は、`db.sampleload` メトリクスを返すこともできますが、通常 `db.load` メトリクスが適切です。

`GetResourceMetrics` により返されるカウンターメトリクスに関する情報は、「[Performance Insights カウンターメトリクス](USER_PerfInsights_Counters.md)」を参照してください。

以下の計算は、メトリクスにサポートされています。
+ 平均 - 期間中のメトリクスの平均値。`.avg` をメトリクス名に追加します。
+ 最小 - 期間中のメトリクスの最小値。`.min` をメトリクス名に追加します。
+ 最大 - 期間中のメトリクスの最大値。`.max` をメトリクス名に追加します。
+ 合計 - 期間中のメトリクス値の合計。`.sum` をメトリクス名に追加します。
+ サンプル数 - 期間中にメトリクスが収集された回数。`.sample_count` をメトリクス名に追加します。

例えば、メトリクスが 300 秒 (5 分) 収集され、メトリクスが 1 分に 1 回収集されたものと見なします。毎分の値は、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` オプションでは、結果を取得する 1 つ以上のクエリを指定します。各クエリは、必須の `Metric` と、オプションの `GroupBy` および `Filter` パラメータから構成されます。`--metric-queries` オプションの指定の例を次に示します。

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

# AWS CLIPerformance Insights での の例
<a name="USER_PerfInsights.API.Examples"></a>

以下のセクションでは、Performance Insights の AWS Command Line Interface (AWS CLI) の詳細と AWS CLI の使用例について説明します。

**Topics**
+ [Performance Insights の AWS CLI の組み込みヘルプ](#USER_PerfInsights.API.CLI)
+ [カウンターメトリクスの取得](#USER_PerfInsights.API.Examples.CounterMetrics)
+ [上位の待機イベントに関する DB 平均負荷の取得](#USER_PerfInsights.API.Examples.DBLoadAverage)
+ [上位の SQL に関する DB 平均負荷の取得](#USER_PerfInsights.API.Examples.DBLoadAverageTop10SQL)
+ [SQL によってフィルタリングされた平均 DB ロードの取得](#USER_PerfInsights.API.Examples.DBLoadAverageFilterBySQL)
+ [SQL ステートメントの全文の取得](#USER_PerfInsights.API.Examples.GetDimensionKeyDetails)
+ [一定期間のパフォーマンス分析レポートの作成](#USER_PerfInsights.API.Examples.CreatePerfAnalysisReport)
+ [パフォーマンス分析レポートの取得](#USER_PerfInsights.API.Examples.GetPerfAnalysisReport)
+ [DB インスタンスのすべてのパフォーマンス分析レポートを一覧表示する](#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)

## Performance Insights の AWS CLI の組み込みヘルプ
<a name="USER_PerfInsights.API.CLI"></a>

Performance Insights は、AWS CLI を使用して表示することができます。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 マネジメントコンソール における 2 つのカウンターメトリクスグラフを示します。

![\[カウンターメトリクスグラフ\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf-insights-api-counters-charts.png)


以下の例では、2 つのカウンターメトリクスグラフを生成するために 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` - `RDS` for Amazon RDS
+ `--identifier` - DB インスタンスのリソース ID
+ `--start-time` および `--end-time` - クエリを実行する期間の ISO 8601 `DateTime` 値 (サポートされている複数の形式)

クエリは 1 時間の範囲で実行されます。
+ `--period-in-seconds` - `60` (1 分ごとのクエリ)
+ `--metric-queries` - 2 つのクエリの配列。それぞれ 1 つのメトリクスに対して使用されます。

  メトリクス名ではドットを使用してメトリクスを有用なカテゴリに分類します。最終の要素は関数になります。この例では、関数は、クエリの `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` を含みます。クエリは 1 分ごとのデータが 1 時間以上実行されるため、`Datapoints` の各リストには、60 個のデータポイントがあります。これには、`Timestamp1/Minute1` や `Timestamp2/Minute2` から、`Timestamp60/Minute60` まで含まれます。

クエリは 2 つの異なるカウンターメトリクスを対象としているため、レスポンス `MetricList` には 2 つの要素があります。

## 上位の待機イベントに関する DB 平均負荷の取得
<a name="USER_PerfInsights.API.Examples.DBLoadAverage"></a>

以下の例は、スタックされたエリアチャートを生成するために AWS マネジメントコンソール で使用されるのと同じクエリです。この例では、上位 7 つの待機イベントに応じて負荷を分割し、最後の 1 時間で `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
```

この例では、上位 7 つの待機イベントのうち `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` の 8 つのエントリがあります。合計の `db.load.avg` のエントリが 1 つあり、上位 7 つの待機イベントのいずれかに従って分割された `db.load.avg` のエントリが 7 つあります。初期の例とは異なり、グループ化ディメンションがあったため、メトリクスのグループ化ごとに 1 つのキーが必要です。基本的なカウンターメトリクスのユースケースのように、メトリクスごとに 1 つのキーのみ使用することはできません。

## 上位の SQL に関する DB 平均負荷の取得
<a name="USER_PerfInsights.API.Examples.DBLoadAverageTop10SQL"></a>

以下の例では、上位 10 個の SQL ステートメント別に `db.wait_events` をグループ化します。SQL ステートメントには 2 つの異なるグループがあります。
+ `db.sql` - SQL のフルステートメント (例:`select * from customers where customer_id = 123` )
+ `db.sql_tokenized` - トークン分割された SQL ステートメント `select * from customers where customer_id = ?`()

データベースのパフォーマンスを分析するときは、パラメータが異なるだけの SQL ステートメントを 1 つの論理的な項目として検討すると便利です。そのため、クエリを実行する際、`db.sql_tokenized` を使用することができます。ただし、特に Explain Plan を確認したい場合は、パラメータ付きの完全な SQL ステートメントと、`db.sql` によるクエリのグループ化を調べる方が便利な場合があります。トークン分割化された SQL と完全 SQL の間には親子関係があり、複数の完全 SQL (子) が同じトークン分割化された SQL (親) の下にグループ化されています。

この例のコマンドは、[上位の待機イベントに関する DB 平均負荷の取得](#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
```

この例では、1 時間の間隔 (秒) で 24 時間以上のクエリを実行します。

この例では、上位 7 つの待機イベントのうち `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)、各エントリには、1 時間あたり 24 の `DataPoints` があります。

トークン分割された SQL の場合は、各ディメンションリストに 3 つのエントリがあります。
+ `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 サポートがサポート 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 によってフィルタリングされた平均 DB ロードの取得
<a name="USER_PerfInsights.API.Examples.DBLoadAverageFilterBySQL"></a>

![\[SQL グラフでフィルタリングします。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/perf-insights-api-filter-chart.png)


上のイメージは、特定のクエリが選択されていることを示しています。上位の平均アクティブセッションのスタックされたエリアグラフはそのクエリを対象としています。クエリは、依然として上位 7 つの全体的な待機イベントを対象としていますが、レスポンスの値はフィルタリングされます。フィルタでは、特定のフィルタに一致するセッションのみが考慮されます。

この例に対応する API クエリは、[上位の SQL に関する DB 平均負荷の取得](#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 に影響を与えるのは上位 5 つの待機イベントであるためです。

## SQL ステートメントの全文の取得
<a name="USER_PerfInsights.API.Examples.GetDimensionKeyDetails"></a>

次の例では、DB インスタンス `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)
        ]
    }
}
```

## DB インスタンスのすべてのパフォーマンス分析レポートを一覧表示する
<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>

次の例では、キー `name` と値 `test-tag` のタグを `report-01ad15f9b88bcbd56` レポートに追加します。

```
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 コンソールからのコールと、Performance Insights API オペレーションへのコードコールが含まれます。

証跡を作成すると、Performance Insights のイベントも含めて、Amazon S3 バケットへの CloudTrail イベントの継続的配信を有効にすることができます。追跡を設定しない場合でも、CloudTrail コンソールの [**イベント履歴**] で最新のイベントを表示できます。CloudTrail によって収集されたデータを使用して、多くの情報を判断できます。この情報には、Performance Insights に対するリクエスト、リクエスト元の IP アドレス、リクエスト者、リクエスト日時が含まれます。追加の詳細も含まれています。

CloudTrail の詳細については、[AWS CloudTrail ユーザーガイド](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)を参照してください。

## CloudTrail での Performance Insights 情報の使用
<a name="USER_PerfInsights.CloudTrail.service-name-info"></a>

AWS アカウントを作成すると、そのアカウントに対して CloudTrail が有効になります。Performance Insights でアクティビティが発生すると、そのアクティビティは、CloudTrail イベントとして AWS の他のサービスのイベントとともに、CloudTrail コンソールの [**イベント履歴**] に記録されます。AWS アカウントで最近のイベントを表示、検索、ダウンロードできます。詳細については、*AWS CloudTrail ユーザーガイド*の「[CloudTrail イベント履歴でのイベントの表示](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)」を参照してください。

Performance Insights のイベントなど、AWS アカウントのイベントを継続的に記録する場合は、証跡を作成します。*証跡*により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。デフォルトでは、コンソールで証跡を作成すると、すべての AWS リージョンに証跡が適用されます。追跡では、AWS パーティション内のすべての AWS リージョンからのイベントをログに記録し、指定した Simple Storage Service (Amazon S3)バケットにログファイルを配信します。さらに、CloudTrail ログで収集したイベントデータをより詳細に分析し、それに基づいて対応するため、他の AWS サービスを構成できます。詳細については、*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)」を参照してください。

## Performance Insights のログファイルのエントリ
<a name="USER_PerfInsights.CloudTrail.service-name-entries"></a>

[*トレイル*] は、指定した Simple Storage Service (Amazon S3) バケットにイベントをログファイルとして配信するように設定できます。CloudTrail ログファイルには、1 つ以上のログエントリがあります。*イベント*は、任意の送信元からの単一のリクエストを表します。各イベントには、リクエストされたオペレーション、オペレーションの日時、リクエストパラメータなどに関する情報が含まれます。CloudTrail ログファイルは、パブリック API コールの順序付けられたスタックトレースではないため、特定の順序では表示されません。

`GetResourceMetrics` オペレーションを示す CloudTrail ログエントリの例は、次のとおりです。

```
{
    "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"
}
```

# Performance Insights API とインターフェイス VPC エンドポイント (AWS PrivateLink)
<a name="pi-vpc-interface-endpoints"></a>

AWS PrivateLink を使用して、VPC と Amazon RDS Performance Insights 間にプライベート接続を作成できます。インターネットゲートウェイ、NAT デバイス、VPN 接続、または Direct Connect 接続を使用せずに、VPC 内にあるかのように Performance Insights にアクセスできます。VPC のインスタンスは、パブリック IP アドレスがなくても Performance Insights にアクセスできます。

このプライベート接続を確立するには、AWS PrivateLink を利用した*インターフェイスエンドポイント*を作成します。インターフェイスエンドポイントに対して有効にする各サブネットにエンドポイントネットワークインターフェイスを作成します。これらは、Performance Insights 宛てのトラフィックのエントリポイントとして機能するリクエスタ管理型ネットワークインターフェイスです。

詳細については、「*AWS PrivateLinkガイド*」の「[AWS PrivateLinkから AWS のサービスにアクセスする](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html)」を参照してください。

## Performance Insights に関する考慮事項
<a name="vpc-endpoint-considerations"></a>

Performance Insights のインターフェイスエンドポイントを設定する前に、「*AWS PrivateLink ガイド*」の「[考慮事項](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#considerations-interface-endpoints)」を確認してください。

Performance Insights は、インターフェイスエンドポイントを介したすべての API アクションの呼び出しをサポートしています。

デフォルトでは、Performance Insights への完全なアクセスは、インターフェイスエンドポイント経由で許可されます。インターフェイスエンドポイントを介した Performance Insights へのトラフィックを制御するには、セキュリティグループをエンドポイントネットワークインターフェイスに関連付けます。

## 利用可能な状況
<a name="rds-and-vpc-interface-endpoints-availability"></a>

Performance Insights API は現在、Performance Insights をサポートする AWS リージョン の VPC エンドポイントをサポートしています。Performance Insights の可用性の詳細については、「[Amazon RDS の Performance Insights でサポートされているリージョンと DB エンジン](Concepts.RDS_Fea_Regions_DB-eng.Feature.PerformanceInsights.md) 」を参照してください。

## Performance Insights のインターフェイスエンドポイントの作成
<a name="vpc-endpoint-create"></a>

Amazon VPC コンソールまたは AWS Command Line Interface (AWS CLI) を使用して、Performance Insights のインターフェイスエンドポイントを作成できます。詳細については、「*AWS PrivateLink ガイド*」の「[インターフェイスエンドポイントを作成](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws)」を参照してください。

以下のサービス名を使用して、Performance Insights のインターフェイスエンドポイントを作成します。

インターフェイスエンドポイントのプライベート DNS を有効にすると、デフォルトのリージョン DNS 名を使用して Performance Insights への API 要求を行うことができます。例えば、`pi.us-east-1.amazonaws.com`。

## Performance Insights API の VPC エンドポイントポリシーの作成
<a name="vpc-endpoint-policy"></a>

エンドポイントポリシーは、インターフェイスエンドポイントにアタッチできる IAM リソースです。デフォルトのエンドポイントポリシーでは、インターフェイスエンドポイントを介した Performance Insights へのフルアクセスが許可されています。VPC から Performance Insights に許可されるアクセスを制御するには、カスタムエンドポイントポリシーをインターフェイスエンドポイントにアタッチします。

エンドポイントポリシーは以下の情報を指定します。
+ アクションを実行できるプリンシパル (AWS アカウント、IAM ユーザー、IAM ロール)。
+ 実行可能なアクション。
+ このアクションを実行できるリソース。

詳細については、*AWS PrivateLink ガイド*の[Control access to services using endpoint policies (エンドポイントポリシーを使用してサービスへのアクセスをコントロールする)](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)を参照してください。

**例: Performance Insights アクションの VPC エンドポイントポリシー**  
以下は、カスタムエンドポイントポリシーの例です。このポリシーをインターフェイスエンドポイントにアタッチすると、すべてのリソースのすべてのプリンシパルについて、リストされている Performance Insights アクションへのアクセス権を付与します。

```
{
   "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" ] }
     }
   ]
}
```

## Performance Insights の IP アドレス指定
<a name="pi-ip-addressing"></a>

IP アドレスは、VPC 内のリソースの相互通信と、インターネット経由でのリソースとの通信を可能にします。Performance Insights は、IPv4 と IPv6 の両方のアドレス指定プロトコルをサポートしています。デフォルトでは、Performance Insights と Amazon VPC は IPv4 アドレス設定プロトコルを使用します。この動作をオフにすることはできません。VPC の作成時には、IPv4 CIDR ブロック (プライベート IPv4 アドレスの範囲) を指定する必要があります。

オプションで、IPv6 CIDR ブロックを VPC とサブネットに割り当て、そのブロックからサブネットの RDS リソースに IPv6 アドレスを割り当てることができます。IPv6 プロトコルのサポートにより、サポートされる IP アドレスの数が増えます。IPv6 プロトコルを使用することで、インターネットの今後の成長に十分なアドレスを確保できます。新規および既存の RDS リソースは、VPC 内で IPv4 アドレスと IPv6 アドレスを使用できます。アプリケーションの異なる部分で使用される 2 つのプロトコル間のネットワークトラフィックの設定、保護、および変換を行うと、運用上のオーバーヘッドが発生する可能性があります。Amazon RDS リソースについては IPv6 プロトコルを標準化して、ネットワーク構成を簡素化できます。サービスエンドポイントとクォータの詳細については、「[Amazon リレーショナルデータベースサービスエンドポイントとクォータ](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)」を参照してください。