データベースのパフォーマンスが低下した場合、負荷を引き起こしている SQL ステートメントを特定するのは困難です。Database Autonomy Service (DAS) は、MySQL の Performance Schema から SQL レベルの実行統計を収集し、実行可能なパフォーマンスメトリクスとして可視化する新バージョンの Performance Insight 機能を提供します。この機能を活用して、負荷の主因となる上位 SQL ステートメントを特定し、問題のあるクエリを速度制限または最適化するとともに、トラフィックのないテーブルおよびインデックスを特定して未使用ストレージの再利用を行ってください。
前提条件
開始する前に、以下の点をご確認ください。
ApsaraDB RDS for MySQL インスタンスが RDS Basic Edition または MySQL 5.5 を実行していないこと
インスタンスのメモリが 8 GB 以上であること
インスタンスが次のいずれかのリージョンに配置されていること:中国 (杭州)、中国 (上海)、中国 (青島)、中国 (北京)、中国 (張家口)、中国 (深セン)、中国 (成都)、中国 (香港)、シンガポール、マレーシア (クアラルンプール)、インドネシア (ジャカルタ)
Performance Schema が有効化されていること。詳細については、「Performance Schema 機能の有効化」をご参照ください。
Performance Schema の有効化にはインスタンスリソースを消費します。詳細については、「Performance Schema の負荷試験レポート」をご参照ください。
課金
Performance Insight は、DAS Economy Edition および DAS Enterprise Edition V3 の有料オプション機能です。課金額はご使用のエディションによって異なります。
対応リージョンについては、「対応データベースおよびリージョン」をご参照ください。
料金の詳細については、「課金の詳細」をご参照ください。
DAS Economy Edition および DAS Enterprise Edition V3 がまだご利用になれないリージョンでは、Performance Insight はパブリックプレビューの状態です。これらのエディションがお客様のリージョンで提供開始された時点で、パブリックプレビューは終了し、本機能は有料オプション機能となります。
パフォーマンスインサイトの仕組み
Performance Insight は、Performance Schema から収集した SQL 実行統計を集約し、すべての SQL ステートメントについて以下の 4 つの主要なメトリクスを可視化します:リソース使用量、実行回数、スキャン行数、実行時間。これらのメトリクスは選択した時間範囲で表示でき、2 つの期間を比較することも可能です。また、個別の SQL ステートメントを掘り下げてサンプルを確認できます。
SQL レベルの分析に加えて、DAS は毎朝、インスタンス内のすべてのテーブルおよびインデックスについてトラフィックのない統計を収集し、各テーブルまたはインデックスが読み取り/書き込みなしの状態が何日連続で続いているかを記録します。このデータは、収集開始から少なくとも 7 日経過後に、テーブル/インデックス タブに表示されます。
以下に、新バージョンのパフォーマンスインサイトと従来のパフォーマンスインサイトの機能を比較した表を示します。
| 項目 | 新しいパフォーマンスのインサイト | 元のパフォーマンスインサイト |
|---|---|---|
| メトリクス | リソース使用量、実行回数、スキャン行数、実行時間 のすべての SQL ステートメントに対する傾向グラフ。さらにインスタンスレベルのチャートとして、実行回数/エラー数、スキャン行数/更新行数/返却行数、論理読み取り、物理読み取り、平均実行時間/平均ロック時間、一時テーブル作成数/一時ディスクテーブル作成数、ソート行数、Select_Scan/Select_Range/Full Join/Full Range Join/Sort_Scan/Sort_Range、上位 5 SQL の傾向 | メモリ使用量/CPU 使用率、セッション、トラフィックスループット、IOPS の傾向グラフ。平均アクティブセッションおよび多次元負荷 |
| 表示方法 | 時間範囲指定、期間比較、SQL ID/キーワード検索、トラフィックのないテーブルおよびインデックス | 時間範囲指定のみ |
| ソリューション | SQL ステートメントの速度制限および最適化 | SQL ステートメントの最適化 |
パフォーマンスインサイトの有効化
インスタンス ページに移動します。上部ナビゲーションバーでご利用のインスタンスが配置されているリージョンを選択し、インスタンス ID をクリックします。
左側のナビゲーションウィンドウで、Autonomy Services > Performance Insight を選択します。
パフォーマンスインサイトの有効化 をクリックします。Performance Schema が有効化されていない場合は、パラメーター設定 ダイアログボックスが表示されます。設定 をクリックして有効化してください。パフォーマンスインサイトが有効化されると、トラフィックのないテーブル/インデックスの識別機能も自動的に有効化されます。
警告Performance Schema の有効化にはインスタンスの再起動が必要です。非ピーク時間帯に実行し、アプリケーションが自動再接続するよう設定されていることをご確認ください。
重要トラフィックのないテーブル/インデックスの識別機能は、2023 年 4 月 11 日より利用可能となっています。この日付より前にパフォーマンスインサイトを有効化した場合は、トラフィックのないテーブルおよびインデックスの識別 を サービス設定 ダイアログボックスで手動で有効化してください。
時間範囲による SQL メトリクスの表示
時間範囲で表示 タブを使用して、特定の期間における SQL パフォーマンスを分析し、負荷の主因となる上位 SQL ステートメントを特定し、個別のクエリに対して対応を行ってください。
パフォーマンスインサイト ページで、時間範囲で表示 タブをクリックします。

時間範囲を選択して、リソース使用量、実行回数、スキャン行数、実行時間 の傾向グラフを表示します。
説明終了時刻は開始時刻より後である必要があります。過去 1 か月以内の最大 7 日間分のデータを照会できます。
その他のメトリクスの表示 をクリックして、追加のインスタンスレベルの傾向グラフを表示します。
説明設定 をクリックし、メトリクス セクションで表示するメトリクスを選択してください。

SQL リストで 設定 をクリックし、列設定 を構成して、どのパフォーマンスメトリクスを列として表示するかを選択します。
以下の操作を使用して、個別の SQL ステートメントを管理します。
SQL ステートメント ID をクリックして、その リソース使用量、実行回数、スキャン行数、実行時間 の傾向グラフおよび SQL サンプルの詳細を表示します。
サンプル を 操作 列でクリックして、SQL サンプルの詳細を直接表示します。
速度制限 を 操作 列でクリックします。SQL スロットリング ダイアログボックスで、速度制限パラメーターを設定します。詳細については、「SQL スロットリング」をご参照ください。
最適化 を 操作 列でクリックします。SQL 診断最適化 ダイアログボックスで診断結果を確認します。最適化の提案を受け入れる場合は、右上隅の コピー をクリックし、最適化済みの SQL ステートメントをデータベースクライアントまたは Data Management (DMS) に貼り付けて実行してください。
説明DAS は、ステートメントの複雑さ、テーブルのデータ量、インスタンスのワークロードに基づいて SQL 診断を実行します。結果の取得には 20 秒以上かかる場合があります。診断完了後、SQL 診断エンジンは診断結果、最適化の提案、および期待される最適化効果を提供します。また、(Database Expert Service) をクリックすることで、緊急対応、ヘルス診断、パフォーマンス最適化、セキュリティ保証、データ移行などの専門サービスを利用できます。
エクスポート をクリックして、データをファイルとしてお使いのコンピューターに保存します。
異なる期間の SQL メトリックを比較する
期間比較で表示 タブを使用して、異なる期間におけるすべての SQL ステートメントのパフォーマンスを比較し、最近の変更がパフォーマンスを向上させたか、あるいは低下させたかを確認します。
パフォーマンスインサイト ページで、期間比較で表示 タブをクリックします。
任意の時点を選択して、その時点におけるすべての SQL ステートメントの リソース使用量、実行回数、スキャン行数、実行時間 を比較します。
SQL リストで比較の詳細を確認します。
説明設定 をクリックして、リストに表示するパフォーマンスメトリクスを選択してください。
トラフィックのないテーブルおよびインデックスの表示
テーブル/インデックス タブを使用して、長期間にわたり読み取りおよび書き込みが一切行われていないテーブルおよびインデックスを特定します。この情報を活用して、未使用ストレージの再利用や古くなったスキーマオブジェクトのクリーンアップを行ってください。
DAS は毎朝、トラフィックのない統計を収集します。トラフィックのない識別機能が有効化されてから、このタブにデータが表示されるまでには少なくとも 7 日間かかります。テーブルまたはインデックスのトラフィックがゼロである期間が 7 日未満の場合、データはまだ不完全である可能性があります。
パフォーマンスインサイト ページで、テーブル/インデックス タブをクリックします。
トラフィックのないテーブル または トラフィックのないインデックス を照会するためのフィルター条件を設定します。
エクスポート をクリックして、結果をファイルとしてお使いのコンピューターに保存します。
パフォーマンスインサイトの無効化
インスタンス ページに移動します。上部ナビゲーションバーでご利用のインスタンスが配置されているリージョンを選択し、インスタンス ID をクリックします。
左側のナビゲーションウィンドウで、Autonomy Services > Performance Insight を選択します。
サービス設定 をクリックします。ダイアログボックスで 機能設定 を無効化し、OK をクリックします。確認メッセージで OK をクリックします。パフォーマンスインサイトを無効化すると、トラフィックのないテーブル/インデックスの識別機能も自動的に無効化されます。この機能は個別に無効化することも可能ですが、無効化後は DAS が収集したすべてのトラフィックのない統計および関連するテーブル/インデックスのデータが削除されます。
重要パフォーマンスインサイトが無効化されると、DAS はデータの収集を停止し、すべての既存データを削除します。

次のステップ
パフォーマンスの問題を自動的に解決するために、DAS の自律機能を有効化します。