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 はクエリのパフォーマンスを修正して最適化するための推奨事項を提供します。

[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 がクエリの異常を検出すると、詳細画面に「This query is slower than usual」というメッセージと、[クエリの詳細] ページに [クエリのパフォーマンスを分析] オプションが表示されます。
  6. 低速なクエリに関するメッセージと [クエリのパフォーマンスを分析] オプションが表示されたクエリの詳細画面
  7. 省略可: [時間範囲フィルタ] を使用して、1 時間、6 時間、1 日、7 日、30 日、またはカスタム範囲を選択します。[クエリの詳細] ページの [時間範囲フィルタ] を調整すると、Cloud SQL は異常検出を再実行します。
  8. Cloud SQL でクエリの異常が検出されない場合でも、[クエリのパフォーマンスを分析] をクリックしてクエリの分析を実行できます。これにより、[クエリのレイテンシの分析] ページが生成されます。

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

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

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

このページには、分析期間のクエリの平均実行時間が表示される実行統計情報グラフも表示されます。

クエリ実行統計情報のグラフ

分析期間

分析期間は、[Query Insights] ダッシュボードの [データベースの負荷] グラフまたは [クエリの詳細] ページで選択した期間の終了前の 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 では、指標が特定のしきい値を超えた場合や、特定の条件を満たした場合を異常と定義します。

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

  • クエリの実行時間: 平均実行時間が 20,504.45% 増加しています。
  • 論理読み取りと論理書き込み: 論理読み取りと論理書き込みの数が 30,797.62% 増加しています。
  • 返された行数: 返された行数が 467.71% 増加しています。

証拠の詳細は、実装に適した推奨事項を判断するのに役立ちます。

推奨事項

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

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

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

一部の推奨事項では、[詳細] リンクをクリックして、推奨事項の補足ドキュメントを読むこともできます。

推奨インデックスを作成する推奨事項を実装する手順は次のとおりです。

  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 アシスタンスによるモニタリングとトラブルシューティングをご覧ください。

次のステップ