高度な Query Insights 機能の概要

このページでは、AlloyDB for PostgreSQL の高度な Query Insights 機能について説明します。高度な Query Insights 機能の設定と使用方法については、高度な Query Insights 機能を使用してクエリのパフォーマンスを改善するをご覧ください。

高度な Query Insights 機能では、クエリのパフォーマンス診断に加えて、標準の Query Insights で利用可能なすべての機能を利用できます。

高度な Query Insights 機能を使用すると、データベースとクエリのパフォーマンスの問題をほぼリアルタイムで検出してトラブルシューティングを行い、解決できます。過去 7 日間の Query Insights データに基づいて、アプリケーション レベルでクエリのパフォーマンスをモニタリングすることで、アクション、コントローラ、フレームワーク、ルート、アプリケーション、データベース ドライバごとに、アプリケーション スタック全体で問題のあるクエリの発生源をトレースできます。高度な Query Insights 機能は、すべてのクエリのクエリプランをキャプチャします。1 分あたり最大 20 件のクエリプランをサンプリングします。

クエリのパフォーマンスの問題の根本原因を事前に特定してトラブルシューティングを行うときに、高度な Query Insights 機能を使用すると、次のことを行うことができます。

  • アドホック分析を実行して、ユーザー、ホスト、データベースなどの複数のディメンションにわたるクエリ統計情報と相関分析をほぼリアルタイムで使用し、難しい問題を診断します。
  • 完全な SQL ステートメントとそれに付随するコメントを使用して、クエリ実行プランを表示します。必要に応じて、クエリに関連付けられたコメントを表示するようにオプトインできます。
  • 待機イベントなどのテレメトリーを分析して、複雑なパフォーマンスの問題をトラブルシューティングします。待機イベントは、クエリ関連のオペレーションの処理を遅らせるコンポーネントです。待機イベント指標はデフォルトで有効になっています。長時間実行されるクエリとそれに関連する待機時間のパフォーマンスの問題を診断してデバッグする際に役立ちます。
  • インデックスの作成に関するインデックス アドバイザーの推奨事項を表示します。
  • Query Insights の設定を構成します。たとえば、クエリの長さをカスタマイズしたり、待機イベント分析を有効にできます。クエリのコメントやアプリケーション タグを保存することもできます。過去のデータとほぼリアルタイムのデータにアクセスできます。
  • 最大 30 日間のデータを分析して、長期的なパフォーマンスを確認します。

高度な Query Insights 機能のメリット

クエリのパフォーマンスの問題を検出して修正するために、次の高度な Query Insights 機能を使用できます。

  • 事前構築済みのダッシュボード。クエリのパフォーマンスの問題を早い段階で特定し、 Google Cloud コンソールの単一ページで問題を特定、診断、解決できます。
  • 根本原因の特定と問題のトラブルシューティングに役立つビジュアル クエリプラン。インコンテキストでエンドツーエンドのアプリケーション トレースを使用して、問題のあるクエリのソースをトレースできます。
  • Google Cloudのエンタープライズ セキュリティ、プライバシー、コンプライアンス サービスに基づく分析情報により、運用上のオーバーヘッドを低減できます。
  • オブジェクト リレーショナル マッパー(ORM)を使用して構築されたアプリケーションに対する、アプリケーション中心のモニタリングと簡素化されたパフォーマンス診断。ビジネス ロジックでクエリにタグを付けると、アプリケーション中心のビューでデータベース パフォーマンスをモニタリングできます。オープンソース ライブラリである Sqlcommenter は、ORM を自動計測し、パフォーマンスの問題の原因となっているアプリケーション コードを特定します。

高度な Query Insights 機能の仕組み

高度な Query Insights 機能はフルマネージドであるため、この機能をインストールしたり、こまめに管理する必要はありません。

高度な Query Insights 機能は、フックを使用して実装されたクエリ指標と実行プランを記録する拡張機能を読み込みます。指標は AlloyDB テーブルに保存されます。正規化された実行プランは Cloud Trace に保存されます。

これらの指標には、 Google Cloud コンソールの AlloyDB の [Query Insights] ページからアクセスできます。指標は、クエリの完了から 30 秒以内に高度な Query Insights 機能で利用できるようになると想定されています。指標は、データベース ストレージと同じ方法で保存時に暗号化されます。

高度な Query Insights 機能は、正規化されたクエリのみを保存し、表示します。クエリ文字列の定数値はすべて削除されます。クエリのコメントはオンデマンドでのみ保持されます。これはオプトイン機能です。クエリプランのトレースで定数値は収集されず、保存もされません。

ストレージ

高度な Query Insights 機能は、正規化されたクエリのみを保存し、表示します。クエリ文字列の定数値はすべて削除されます。クエリプランのトレースでは、定数値の収集と保存は行いません。デフォルトでは、高度な Query Insights 機能はタグ情報を収集しません。後で有効にした場合は、インスタンス設定ごとに高度な Query Insights 機能で無効にできます。

[Query Insights] ダッシュボードには、4 週間のデータが表示されます。7 日間分のデータのストレージ要件は約 36 GB です。高度なクエリ分析機能は、最大 10 MB の RAM(共有メモリ)を使用します。指標は、クエリの完了から 30 秒以内に分析で利用できるようになると想定されています。さらに、標準の Query Insights 指標は Cloud Monitoring のシステム指標で使用できるため、標準の Query Insights の機能をそのまま維持できます。Cloud Monitoring システム指標の保持ポリシーの詳細については、データの保持をご覧ください。

高度な Query Insights 機能のトレースは Cloud Trace に保存されます。保持期間は 30 日です。Cloud Trace のデータ保持ポリシーの詳細については、割り当てと上限をご覧ください。

制限事項

  • 高度な Query Insights 機能によって公開される指標は、Cloud Monitoring API では使用できません。
  • クライアント IP アドレスのサポートは利用できません。
  • セカンダリ インスタンスを含むクラスタでは、高度な Query Insights 機能を有効にできません。クラスタにセカンダリ インスタンスを作成する前に、クラスタ内のすべてのインスタンスで高度な Query Insights 機能を無効にする必要があります。
  • AlloyDB は、プライマリ インスタンスと読み取りプール インスタンスの Query Insights データを 30 日間保存します。プライマリ インスタンスのデータの保存には約 180 GB の容量が使用されます。この容量は、クラスタ内の読み取りプールノードの数に応じて増加する可能性があります。使用されるストレージの最大サイズは 700 GB です。
  • 読み取りプール インスタンスで有効にする前に、プライマリ インスタンスで高度な Query Insights 機能を有効にする必要があります。
  • 高度なクエリ分析機能を有効にすると、Query Insights ダッシュボードがリセットされます。ただし、Metrics Explorer の UI を使用して、標準のクエリ分析情報の指標にアクセスすることは可能です。

次のステップ