AI アシスタンスを活用した低速なクエリのトラブルシューティング

このドキュメントでは、Cloud SQL の AI アシスタンスを使用して、Cloud SQL で低速なクエリのトラブルシューティングを行う方法について説明します。Cloud SQL と Gemini Cloud Assist の AI アシスタント機能を使用して、調査、分析、推奨事項の取得を行い、最終的に推奨事項を実装して Cloud SQL のクエリを最適化できます。

始める前に

AI 支援による低速なクエリのトラブルシューティングを行うには、次の操作を行います。

  1. AI を活用したトラブルシューティングの制限事項を確認する
  2. AI を活用したトラブルシューティングを有効にする

必要なロールと権限

AI アシスタントを使用して低速なクエリのトラブルシューティングを行うために必要なロールと権限については、AI アシスタンスによるモニタリングとトラブルシューティングをご覧ください。

AI アシスタンスを使用する

AI アシスタントを使用して低速なクエリのトラブルシューティングを行うには、 Google Cloud コンソールで Cloud SQL インスタンスの [Query Insights] ダッシュボードに移動します。

上位クエリのテーブル

低速なクエリのトラブルシューティングは、[Query Insights] ダッシュボードの [上位クエリのテーブル] セクションで AI アシスタンスを使用して開始できます。

Cloud SQL を使用すると、特定の検出期間中にパフォーマンスが平均よりも低速なクエリを特定できます。[Query Insights] ダッシュボードで期間を選択すると、Cloud SQL は、選択した期間終了の 24 時間前の検出期間を使用して、クエリのパフォーマンスが平均よりも遅いかどうかを確認します。

[データベースの負荷] グラフの期間フィルタや、データベースやユーザーなどの他のフィルタを調整すると、Cloud SQL は [上位クエリのテーブル] を更新し、新しいクエリリストと更新された検出期間に基づいて異常検出を再実行します。

Query Insights のデータベース負荷グラフ

Cloud SQL が異常を検出した際に [レイテンシを分析] をクリックすると、Cloud SQL はクエリのベースライン パフォーマンス分析を実行します。Cloud SQL は異常時の指標を低速なクエリにマッピングし、パフォーマンスの低下を引き起こした可能性のある状況を検索します。Cloud SQL が潜在的な状況を検出すると、その状況の証拠を確認できます。最後に、Cloud SQL はクエリのパフォーマンスを修正して最適化するための推奨事項を提供します。

[Query Insights] ダッシュボードの [上位クエリ] テーブルで、低速なクエリのトラブルシューティングを行う手順は次のとおりです。

  1. Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
  3. SQL ナビゲーション メニューで [Query Insights] をクリックします。
  4. [実行されたクエリ] グラフで、[期間] フィルタを使用して、1 時間、6 時間、1 日、7 日、30 日、またはカスタム範囲を選択します。
  5. [上位のクエリ] テーブルで、データベースのクエリのリストを確認します。
  6. クエリの [平均実行時間] の横に [レイテンシを分析] と表示されている場合、Cloud SQL によりクエリのパフォーマンスの異常が検出されたことがわかります。Cloud SQL は、選択した期間の終了前に発生した 24 時間以内の異常をチェックします。
  7. [レイテンシを分析] をクリックして、AI アシスタントによるトラブルシューティングを開始します。これにより、[クエリのレイテンシの分析] ページが生成されます。
  8. [平均実行時間] の横に [レイテンシを分析] と表示されないクエリがある場合は、次のいずれかの理由が考えられます。

クエリの詳細

[クエリの詳細] ページで AI アシスタントを使用して、低速なクエリのトラブルシューティングを行うこともできます。

  1. Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
  3. [Query Insights] をクリックして [Query Insights] ダッシュボードを開きます。
  4. [Query Insights] ダッシュボードで、[上位のクエリ] で表示するクエリをクリックします。[クエリの詳細] ページが表示されます。
  5. Cloud SQL がクエリの異常を検出すると、[クエリの詳細] ページに次のインジケーターの 1 つ以上が表示されます。
    • 詳細画面に「This query is slower than usual」というメッセージと [クエリのパフォーマンスを分析] オプションが表示されます。
    • 低速なクエリに関するメッセージと [クエリのパフォーマンスを分析] オプションが表示されたクエリの詳細画面
    • [クエリ レイテンシ] グラフの「Query slower than usual」というメッセージ。このメッセージが表示されたら、[分析] をクリックして AI アシスタントによるトラブルシューティングを開始します。これにより、[クエリのレイテンシの分析] ページが生成されます。
    • 低速なクエリに関するメッセージと分析オプションを含むクエリのレイテンシのグラフ
  6. 省略可: [時間範囲フィルタ] を使用して、1 時間、6 時間、1 日、7 日、30 日、またはカスタム範囲を選択します。[クエリの詳細] ページの [時間範囲フィルタ] または他のフィルタ([データベース]、[ユーザー] など)を調整すると、Cloud SQL は異常検出を再実行します。
  7. Cloud SQL がクエリの異常を検出しない場合は、[クエリのパフォーマンスを分析] をクリックしてクエリの分析を実行できます。これにより、[クエリのレイテンシの分析] ページが生成されます。

クエリのレイテンシを分析する

AI アシスタントを使用すると、クエリのレイテンシの詳細を分析してトラブルシューティングできます。

[クエリのレイテンシの分析] ページでは、クエリの詳細とクエリのテキストを確認できます。

クエリ分析情報画面

このページには、選択した期間のレイテンシ値が P95、P99 であるレイテンシ グラフも表示されます。P95 のラインと P99 のラインは、クエリユーザーの 95% あるいは 99% が表示されたクエリのレイテンシを経験していることを示します。P95 では 5% が高いレイテンシを経験し、P99 では 1% のみが高いレイテンシを経験しています。グラフを調べると、クエリのレイテンシが大幅に増加した特定の期間を確認できます。

レイテンシ値が P99 のクエリのレイテンシ グラフ

分析期間

分析期間は、[Query Insights] ダッシュボードの [データベースの負荷] グラフまたは [クエリの詳細] ページで選択した期間の終了前の 24 時間で構成されます。Cloud SQL は、この期間を使用して、ベースライン指標と異常の期間中に取得された指標を比較します。

[クエリの詳細] ページで、Cloud SQL がクエリの異常を検出した場合、[Query Insights] ダッシュボードからクエリを選択すると、Cloud SQL は異常の終了から最後の 24 時間を使用してクエリのベースライン パフォーマンス分析を実行します。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 つ以上の実用的な推奨事項を提供します。推奨事項には費用対効果の分析がついており、推奨事項を講じるべきかの判断材料になります。

たとえば、次のような推奨事項が表示されます。

MySQL の低速なクエリに関する推奨事項と詳細情報へのリンク。

  • 同時実行クエリを確認する: 同時実行クエリを確認して、ロック競合を特定します。ロック競合は、データ変更クエリ(DML - 挿入 / 更新 / 削除)間で発生することがほとんどです。

    初めて推奨事項の実装を開始するには、[詳細] をクリックして、Query Insights ダッシュボードで同時実行クエリを確認する方法をご覧ください。詳細については、アクティブなクエリをモニタリングするをご覧ください。

Gemini Cloud Assist でも、トラブルシューティングを続行するヒントやクエリのパフォーマンスについてのサポートが得られます。詳細については、AI アシスタンスによる観察とトラブルシューティングをご覧ください。

Gemini Cloud Assist でも、トラブルシューティングを続行するヒントやクエリのパフォーマンスについてのサポートが得られます。詳細については、AI アシスタンスによる観察とトラブルシューティングをご覧ください。

次のステップ