このドキュメントでは、AlloyDB for PostgreSQL の AI アシスタントを使用して、AlloyDB の低速なクエリのトラブルシューティングを行う方法について説明します。AlloyDB と Gemini Cloud Assist の AI アシスタント機能を使用して、調査、分析、推奨事項の取得を行い、最終的に推奨事項を実装して AlloyDB のクエリを最適化できます。
始める前に
AI 支援による低速なクエリのトラブルシューティングを行うには、次の操作を行います。
必要なロールと権限
AI アシスタントを使用して低速なクエリのトラブルシューティングを行うために必要なロールと権限については、AI によるモニタリングとトラブルシューティングをご覧ください。
AI アシスタントを使用する
AI アシスタントを使用して低速なクエリのトラブルシューティングを行うには、 Google Cloud コンソールで AlloyDB インスタンスの [Query Insights] ダッシュボードに移動します。
上位クエリのテーブル
低速なクエリのトラブルシューティングは、[Query Insights] ダッシュボードの [上位クエリのテーブル] セクションで AI アシスタンスを使用して開始できます。
AlloyDB を使用すると、特定の検出期間中にパフォーマンスが平均よりも低速なクエリを特定できます。[Query Insights] ダッシュボードで期間を選択すると、AlloyDB は、選択した期間終了の 24 時間前の検出期間を使用して、クエリのパフォーマンスが平均よりも遅いかどうかを確認します。
[データベースの負荷] グラフの期間フィルタや、データベースやユーザーなどの他のフィルタを調整すると、AlloyDB は [上位クエリのテーブル] を更新し、新しいクエリリストと更新された検出期間に基づいて異常検出を再実行します。
AlloyDB が異常を検出した際に、[レイテンシを分析] をクリックすると、AlloyDB はクエリのベースライン パフォーマンス分析を実行します。AlloyDB は、異常時の指標を低速なクエリにマッピングし、パフォーマンスの低下を引き起こした可能性のある状況を検索します。AlloyDB が潜在的な状況を検出すると、その状況の証拠を表示できます。最後に、AlloyDB はクエリのパフォーマンスを修正して最適化するための推奨事項を提供します。
[Query Insights] ダッシュボードの [上位クエリ] テーブルで、低速なクエリのトラブルシューティングを行う手順は次のとおりです。
- Google Cloud コンソールで、[クラスタ] ページに移動します。 [クラスタ] に移動
- クラスタとインスタンスのリストで、インスタンスをクリックします。
- [Query Insights] をクリックします。
- [実行されたクエリ] グラフで、[期間] フィルタを使用して、1 時間、6 時間、1 日、7 日、30 日、またはカスタム範囲を選択します。
- [上位のクエリ] テーブルで、データベースのクエリのリストを表示します。
- クエリの [平均実行時間] の横に [レイテンシを分析] と表示されている場合、AlloyDB はクエリのパフォーマンスの異常を検出しています。AlloyDB は、選択した期間の終了前に発生した 24 時間以内の異常をチェックします。
- [レイテンシを分析] をクリックして、AI アシスタントによるトラブルシューティングを開始します。これにより、[クエリのレイテンシの分析] ページが生成されます。
- 選択した期間の 24 時間の検出期間内に、リスト内のどのクエリにも異常が発生していない。
- Gemini Cloud Assist が設定されていない。
[平均実行時間] の横に [レイテンシを分析] と表示されないクエリがある場合は、次のいずれかの理由が考えられます。
クエリの詳細
[クエリの詳細] ページで AI アシスタントを使用して、低速なクエリのトラブルシューティングを行うこともできます。
- Google Cloud コンソールで、[クラスタ] ページに移動します。 [クラスタ] に移動
- クラスタとインスタンスのリストで、インスタンスをクリックします。
- [Query Insights] をクリックして [Query Insights] ダッシュボードを開きます。
- [Query Insights] ダッシュボードで、[上位のクエリ] で表示するクエリをクリックします。[クエリの詳細] ページが表示されます。
- 省略可: [期間フィルタ] を使用して、1 時間、6 時間、1 日、7 日、30 日、またはカスタム範囲を選択します。[クエリの詳細] ページの [期間フィルタ] を調整すると、AlloyDB は異常検出を再実行します。
- AlloyDB がクエリの異常を検出しない場合でも、[クエリ パフォーマンスを分析] をクリックしてクエリの分析を実行できます。これにより、[クエリのレイテンシの分析] ページが生成されます。
クエリのレイテンシを分析する
AI アシスタントを使用すると、クエリのレイテンシの詳細を分析してトラブルシューティングできます。
[クエリのレイテンシの分析] ページでは、クエリの詳細とクエリのテキストを確認できます。
- 分析期間
- 異常が検出された期間
- データベース
- 平均実行時間
- 呼び出された時間
- 返された平均行数
このページには、選択した期間の P50、P95、P99 レイテンシ値を示すレイテンシ グラフも表示されます。P50 は、クエリユーザーの 50% が高いレイテンシを経験し、50% が低いレイテンシを経験している中央値のレイテンシを示します。同様に、P95 のラインと P99 のラインは、クエリユーザーの 95% と 99% が、表示されたクエリのレイテンシを経験していることを示します。P95 では 5% が高いレイテンシを経験し、P99 では 1% のみが高いレイテンシを経験しています。
クエリのレイテンシが大幅に増加した特定の期間を確認できます。
分析期間
分析期間は、[Query Insights] ダッシュボードの [データベースの負荷] グラフまたは [クエリの詳細] ページで選択した期間の終了前の 24 時間で構成されます。AlloyDB は、この期間を使用して、ベースライン指標と異常の期間中に取得された指標を比較します。
[クエリの詳細] ページで、AlloyDB がクエリの異常を検出した場合、[Query Insights] ダッシュボードからクエリを選択すると、AlloyDB は異常の終了から最後の 24 時間を使用してクエリのベースライン パフォーマンス分析を実行します。AlloyDB がクエリの異常を検出しなかった場合、クエリに対して異常検出を再度実行します。この場合、AlloyDB は、選択した期間終了の 48 時間前を分析期間のパフォーマンス ベースラインとして使用します。
異常が検出された期間
異常が検出された期間は、AlloyDB がクエリのパフォーマンスの異常な変化を検出した期間を表します。AlloyDB は、分析期間中にクエリに対して測定されたベースライン パフォーマンスを使用します。
選択した期間内にクエリで複数の異常が検出された場合は、最後に検出された異常が使用されます。
状況
調査を開始すると、AlloyDB はクエリと過去のデータの分析を行い、選択した期間にクエリのパフォーマンスが低下した原因となる根本的な状況を特定しようとします。
たとえば、クエリが低速な理由として、データ量の変化が特定される場合があります。
この特有な状況を特定したとき、AlloyDB はこのクエリのデータ量の異常な増加を検出しました。AlloyDB は、異常が検出されなかった状況も一覧で提示します。これにより、それらが問題の原因ではないことを確認し、根本原因から除外できます。
根拠
状況ごとに、AlloyDB は検出結果を裏付ける証拠のリストを表示します。AlloyDB は、インスタンス、データベース、クエリの過去の実行から収集された指標に基づいて証拠を示します。
各状況で提示される証拠には、検出期間内に AlloyDB がクエリで検出した異常が反映されます。AlloyDB では、指標が特定のしきい値を超えた場合や、特定の条件を満たした場合を異常と定義します。
この例では、データ量の変化の状況を裏付ける証拠として、次のようなものが考えられます。
- クエリによって処理されたデータ: クエリによって処理される平均データ量が最大 5,989.97% 増加しています。
- クエリの実行時間: 平均実行時間が最大 1,506.59% 増加しています。
- 共有ブロックのヒット数: 共有ブロックの平均ヒット数が 2,397.83% 増加しました
次のような、一般的なクエリのパフォーマンスや異常ではないクエリのパフォーマンスを裏付ける証拠も表示される場合があります。
- 返された行数: 大きな変化は検出されませんでした。
- データ処理時間: 変更を評価するためのデータが不十分です。
標準クエリの実行に関する証拠は、実装に適した推奨事項を判断するのに役立ちます。
推奨事項
分析されたすべての状況に基づいて、AlloyDB は、低速なクエリ パフォーマンスの問題を解決するための実用的な推奨事項を 1 つ以上提供します。この場合、AlloyDB は費用対効果分析とともに推奨事項を提示するため、推奨事項を実装するかどうかを十分な情報に基づいて判断できます。
たとえば、次のような推奨事項が表示されます。
- 推奨のインデックスを作成する:
country
に新しいインデックスを作成して、このクエリのパフォーマンスを向上させます。
この推奨事項を実装する手順は次のとおりです。
- [推奨事項] テーブルで、実装する推奨事項の横にある [詳細を表示] をクリックします。[分析情報と推奨事項] ウィンドウが表示されます。
- [分析情報と推奨事項] ウィンドウで、[推奨される対応] と [影響を受けるテーブル] を確認します。
- 省略可: インデックスの推奨事項についての詳細を確認するには、[この機能のメリット] をクリックして Gemini Cloud Assist を開きます。
- [すべての index コマンドをコピー] をクリックします。
- AlloyDB Studio に対して認証します。
CREATE INDEX
コマンドを AlloyDB Studio に貼り付けて、インデックスを作成します。AlloyDB Studio で SQL コマンドを実行する方法については、AlloyDB Studio を使用してデータを管理するをご覧ください。

トラブルシューティングを続けるか、クエリのパフォーマンスについてさらにサポートが必要な場合は、Gemini Cloud Assist を使用することもできます。詳細については、AI アシスタンスによる観察とトラブルシューティングをご覧ください。