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

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

クエリ分析情報画面

このページには、選択した期間の P50、P95、P99 レイテンシ値を示すレイテンシ グラフも表示されます。P50 は、クエリユーザーの 50% が高いレイテンシを経験し、50% が低いレイテンシを経験している中央値のレイテンシを示します。同様に、P95 のラインと P99 のラインは、クエリユーザーの 95% と 99% が、表示されたクエリのレイテンシを経験していることを示します。P95 では 5% が高いレイテンシを経験し、P99 では 1% のみが高いレイテンシを経験しています。

クエリのレイテンシが大幅に増加した特定の期間を確認できます。

P50、P95、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 がクエリで検出した異常が反映されます。Cloud SQL では、指標が特定のしきい値を超えた場合や、特定の条件を満たした場合を異常と定義します。

この例では、データ量の変化の状況を裏付ける証拠として、次のようなものが考えられます。

  • クエリによって処理されたデータ: クエリによって処理される平均データ量が最大 5,989.97% 増加しています。
  • クエリの実行時間: 平均実行時間が最大 1,506.59% 増加しています。
  • 共有ブロックのヒット数: 共有ブロックの平均ヒット数が 2,397.83% 増加しました

次のような、一般的なクエリのパフォーマンスや異常ではないクエリのパフォーマンスを裏付ける証拠も表示される場合があります。

  • 返された行数: 大きな変化は検出されませんでした。
  • データ処理時間: 変更を評価するためのデータが不十分です。

標準クエリの実行に関する証拠は、実装に適した推奨事項を判断するのに役立ちます。

推奨事項

分析されたすべての状況に基づいて、Cloud SQL は、クエリのパフォーマンスが低速な問題を解決するために、1 つ以上の実用的な推奨事項を提供します。Cloud SQL は、費用対効果分析とともに推奨事項を提示するため、推奨事項を実装するかどうかを十分な情報に基づいて判断できます。

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

  • 推奨インデックスを作成する: country に新しいインデックスを作成して、このクエリのパフォーマンスを向上させます。

この推奨事項を実装する手順は次のとおりです。

  1. [推奨事項] テーブルで、実装する推奨事項の横にある [詳細を表示] をクリックします。[分析情報と推奨事項] ウィンドウが表示されます。
  2. コピーするインデックス作成コマンドを含む分析情報と推奨事項のウィンドウ。
  3. [分析情報と推奨事項] ウィンドウで、[推奨される対応] と [影響を受けるテーブル] を確認します。
  4. 省略可: インデックスの推奨事項についての詳細を確認するには、[この機能のメリット] をクリックして Gemini Cloud Assist を開きます。
  5. [すべての index コマンドをコピー] をクリックします。
  6. SQL ナビゲーション メニューで [Cloud SQL Studio] をクリックします。
  7. Cloud SQL Studio に対する認証
  8. CREATE INDEX コマンドを Cloud SQL Studio に貼り付けて、インデックスを作成します。Cloud SQL Studio で SQL コマンドを実行する方法については、Cloud SQL Studio を使用してデータを管理するをご覧ください。

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

次のステップ