このドキュメントでは、Cloud SQL の AI アシスタントを使用して、Cloud SQL で遅いクエリのトラブルシューティングを行う方法について説明します。Cloud SQL と Gemini Cloud Assist の AI 支援機能を使用して、調査、分析、推奨事項の取得を行い、最後に推奨事項を実装して Cloud SQL のクエリを最適化できます。
始める前に
AI 支援による遅いクエリのトラブルシューティングを行うには、次の操作を行います。
必要なロールと権限
AI アシスタントを使用してスロークエリのトラブルシューティングを行うために必要なロールと権限については、AI を使用してモニタリングとトラブルシューティングを行うをご覧ください。
AI アシスタンスを使用する
AI アシスタントを使用して遅いクエリのトラブルシューティングを行うには、Google Cloud コンソールで Cloud SQL インスタンスの Query Insights ダッシュボードに移動します。
上位クエリのテーブル
Query Insights ダッシュボードの [上位クエリの表] セクションで、AI アシスタントを使用して遅いクエリのトラブルシューティングを開始できます。
Cloud SQL を使用すると、特定の検出期間中に平均よりも遅いパフォーマンスのクエリを特定できます。Query Insights ダッシュボードで期間を選択すると、Cloud SQL は、選択した期間の終了前 24 時間の検出期間を使用して、クエリのパフォーマンスが平均より遅いかどうかを確認します。
[データベースの負荷] グラフの時間範囲フィルタや、データベースやユーザーなどの他のフィルタを調整すると、Cloud SQL は [上位クエリの表] を更新し、新しいクエリリストと更新された検出期間に基づいて異常検出を再実行します。
Cloud SQL が異常を検出すると、[レイテンシを分析] をクリックすると、クエリのベースライン パフォーマンス分析が実行されます。Cloud SQL は、異常時の指標を低速なクエリにマッピングし、パフォーマンスの低下を引き起こした可能性のある状況を検索します。Cloud SQL が潜在的な状況を検出すると、その状況の証拠を表示できます。最後に、Cloud SQL はクエリのパフォーマンスを修正して最適化するための推奨事項を提供します。
[Query Insights] ダッシュボードの [上位クエリ] テーブルで、遅いクエリのトラブルシューティングを行う手順は次のとおりです。
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- SQL ナビゲーション メニューで [Query Insights] をクリックします。
- [実行されたクエリ] グラフで、[期間] フィルタを使用して、1 時間、6 時間、1 日、7 日、30 日、またはカスタム範囲を選択します。
- [上位のクエリ] テーブルで、データベースのクエリのリストを表示します。
- クエリの [平均実行時間] の横に [レイテンシを分析] と表示されている場合、Cloud SQL はクエリのパフォーマンスに異常を検出しています。Cloud SQL は、選択した期間の終了前に発生した 24 時間以内の異常をチェックします。
- [レイテンシを分析] をクリックして、AI アシスタントによるトラブルシューティングを開始します。これにより、[クエリのレイテンシの分析] ページが生成されます。
- 選択した期間の 24 時間の検出期間内に、リスト内のどのクエリにも異常は発生していません。
- Gemini Cloud Assist が設定されていません。Gemini Cloud Assist が Google Cloud ユーザー アカウントとプロジェクト用に設定されていることを確認します。
[平均実行時間] の横に [レイテンシを分析] と表示されないクエリがある場合は、次のいずれかの理由が考えられます。
クエリの詳細
[クエリの詳細] ページで AI アシスタントを使用して、遅いクエリのトラブルシューティングを行うこともできます。
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- [クエリ分析情報] をクリックして [クエリ分析情報] ダッシュボードを開きます。
- [Query Insights] ダッシュボードで、[上位のクエリ] で表示するクエリをクリックします。[クエリの詳細] ページが表示されます。
- Cloud SQL がクエリの異常を検出すると、[クエリの詳細] ページに次のインジケーターの 1 つ以上が表示されます。
- 詳細画面に
This query is slower than usual
というメッセージと [クエリのパフォーマンスを分析] オプションが表示されます。 - [クエリ レイテンシ] グラフに「
Query slower than usual
」というメッセージが表示される。このメッセージが表示されたら、[分析] をクリックして AI アシスタントによるトラブルシューティングを開始します。これにより、[クエリのレイテンシの分析] ページが生成されます。 - 省略可: [時間範囲フィルタ] を使用して、1 時間、6 時間、1 日、7 日、30 日、またはカスタム範囲を選択します。[クエリの詳細] ページの [時間範囲フィルタ] または他のフィルタ([データベース] や [ユーザー] など)を調整すると、Cloud SQL は異常検出を再実行します。
- Cloud SQL でクエリの異常が検出されない場合でも、[クエリのパフォーマンスを分析] をクリックしてクエリの分析を実行できます。これにより、[クエリのレイテンシの分析] ページが生成されます。
![遅いクエリに関するメッセージと [クエリ パフォーマンスを分析] オプションが表示されたクエリの詳細画面](https://cloud-dot-devsite-v2-prod.appspot.com/static/docs/databases/images/query-details-analyze-query-perf.png?hl=ja)

クエリのレイテンシを分析する
AI アシスタントを使用すると、クエリ レイテンシの詳細を分析してトラブルシューティングできます。
[クエリ レイテンシの分析] ページでは、クエリの詳細とクエリのテキストを確認できます。
- 分析期間
- 異常が検出された期間
- データベース
- 平均実行時間
- 呼び出された回数
このページには、選択した期間の P95 レイテンシ値と P99 レイテンシ値を示すレイテンシ グラフも表示されます。P95 線と P99 線は、クエリ ユーザーの 95% と 99% が、指定されたクエリ レイテンシを経験していることを示しています。P95 では 5% のレイテンシが長く、P99 では 1% のレイテンシが長くなっています。グラフを調べると、クエリ レイテンシが大幅に増加した特定の期間を確認できます。
分析期間
分析期間は、[クエリの分析情報] ダッシュボードの [データベースの負荷] グラフまたは [クエリの詳細] ページで選択した期間の終了前に発生した 24 時間で構成されます。Cloud SQL は、この期間を使用して、ベースライン指標と異常の期間中に取得された指標を比較します。
[クエリの詳細] ページで、Cloud SQL がクエリの異常を検出した場合、[クエリ分析情報] ダッシュボードからクエリを選択すると、異常の終了から過去 24 時間を使用して、クエリのベースライン パフォーマンス分析が実行されます。Cloud SQL がクエリの異常を検出しなかった場合、Cloud SQL はクエリで異常検出を再度実行します。この場合、Cloud SQL は、選択した期間の終了の 48 時間前を分析期間のパフォーマンス ベースラインとして使用します。
異常が検出された期間
異常が検出された期間は、Cloud SQL がクエリのパフォーマンスの異常な変化を検出した期間を表します。Cloud SQL は、分析期間中にクエリに対して測定されたベースライン パフォーマンスを使用します。
選択した期間内にクエリで複数の異常が検出された場合は、最後に検出された異常が使用されます。
状況
調査を開始すると、Cloud SQL はクエリと過去のデータの分析を行い、選択した期間にクエリのパフォーマンスが低下した原因となる根本的な状況を特定しようとします。
たとえば、クエリが遅い理由として、ロック競合が特定される場合があります。
この特定の状況を特定するために、Cloud SQL はこのクエリの行ロック待機時間の異常な増加を検出しました。Cloud SQL には、異常が検出されない可能性のある他の状況も一覧表示されます。これにより、考えられる根本原因として除外できます。
根拠
状況ごとに、Cloud SQL は検出結果を裏付ける証拠のリストを表示します。Cloud SQL は、インスタンス、データベース、クエリの過去の実行から収集された指標に基づいて証拠を生成します。
各状況で提示される証拠は、検出期間内に Cloud SQL がクエリで検出した異常を反映しています。Cloud SQL では、指標が特定のしきい値を超えた場合や、特定の条件を満たした場合を異常と定義します。
ロック競合の状況を裏付ける証拠として、次のようなものがあります。
- ロック待機時間: クエリ実行中の行ロックの待機時間が 7782.49% 増加しています。
証拠の詳細は、実装に適した推奨事項を判断するのに役立ちます。
推奨事項
分析されたすべての状況に基づいて、Cloud SQL は、クエリのパフォーマンスが低い問題を解決するために、1 つ以上の実用的な推奨事項を提供します。Cloud SQL は、費用対効果分析とともに推奨事項を提示するため、推奨事項を実装するかどうかを十分な情報に基づいて判断できます。
たとえば、次のような推奨事項が表示されます。
同時実行クエリを確認する: 同時実行クエリを確認して、ロック競合を特定します。ロック競合は、ほとんどの場合、データ変更クエリ(DML - 挿入/更新/削除)間で発生します。
最初の推奨事項の実装を開始するには、[詳細] をクリックして、Query Insights ダッシュボードで同時実行クエリを確認する方法をご覧ください。詳細については、アクティブなクエリをモニタリングするをご覧ください。
トラブルシューティングを続けるか、クエリのパフォーマンスについてさらにサポートが必要な場合は、Gemini Cloud Assist を開くこともできます。詳細については、AI アシスタンスによるモニタリングとトラブルシューティングをご覧ください。