このページでは、AlloyDB for PostgreSQL の高度なクエリ分析機能について説明します。高度な Query Insights 機能の設定と使用方法については、高度な Query Insights 機能を使用してクエリのパフォーマンスを改善するをご覧ください。
高度なクエリ分析情報の機能には、クエリのパフォーマンス診断機能のほか、標準のクエリ分析情報で利用できるすべての機能が含まれています。
高度なクエリ分析情報機能を使用すると、データベースとクエリのパフォーマンスの問題をほぼリアルタイムで検出してトラブルシューティングし、防止できます。過去 7 日間の Query Insights データに基づいて、アプリケーション レベルでクエリのパフォーマンスをモニタリングし、アクション、コントローラ、フレームワーク、ルート、アプリケーション、データベース ドライバごとに、アプリケーション スタック全体で問題のあるクエリの元をトレースできます。高度な Query Insights 機能は、すべてのクエリのクエリプランをキャプチャし、1 分あたり最大 200 個のクエリプランをサンプリングします。
高度なクエリ分析情報機能を使用すると、クエリのパフォーマンスの問題の根本原因を事前に特定してトラブルシューティングできます。
- アドホック分析を実行して、ユーザー、ホスト、データベースなどの複数のディメンションにわたるリアルタイムに近いクエリ統計情報と相関分析を使用して、難しい問題を診断します。
- 完全な SQL ステートメントと付随するコメントを使用して、クエリ実行プランを表示します。必要に応じて、クエリに関連付けられたコメントを表示するようにオプトインできます。
- 待機イベントなどのテレメトリーを分析して、複雑なパフォーマンスの問題をトラブルシューティングします。待機イベントは、クエリ関連のオペレーションの処理を遅らせるコンポーネントです。待機イベント指標はデフォルトで有効になっています。長時間実行されるクエリとそれに関連する待ち時間のパフォーマンスの問題を診断してデバッグするのに役立ちます。
- インデックスの作成に関するインデックス アドバイザーの推奨事項を表示します。
- Query Insights の設定を構成します。たとえば、クエリの長さをカスタマイズしたり、待機イベント分析を有効にしたり、クエリのコメントやアプリケーション タグを保存したりできます。過去のデータとほぼリアルタイムのデータにアクセスできます。
- 最大 30 日間のデータを分析して、長期的なパフォーマンスを確認します。
高度な Query Insights 機能のメリット
クエリのパフォーマンスの問題を検出して修正するために、次の高度なクエリ分析情報機能を使用できます。
- クエリのパフォーマンスの問題を早期に特定し、Google Cloud コンソールの 1 つのページで問題を特定、診断、解決できる、事前構築されたダッシュボード。
- 根本原因の特定と問題のトラブルシューティングに役立つビジュアル クエリプラン。インコンテキスト エンドツーエンドのアプリケーション トレースを使用して、問題のあるクエリのソースをトレースできます。
- Google Cloudのエンタープライズ セキュリティ、プライバシー、コンプライアンス サービスに基づく分析情報により、運用上のオーバーヘッドを削減できます。
- オブジェクト リレーショナル マッパー(ORM)を使用して構築されたアプリケーションのアプリケーション中心のモニタリングと簡素化されたパフォーマンス診断。クエリにビジネス ロジックでタグを付けることで、アプリケーション中心のビューでデータベース パフォーマンスをモニタリングできます。オープンソース ライブラリである Sqlcommenter は、ORM を自動計測して、パフォーマンスの問題の原因となっているアプリケーション コードを特定します。
高度なクエリ分析情報機能の仕組み
高度なクエリ分析情報機能はフルマネージドであるため、この機能をインストールしたり、積極的に管理したりする必要はありません。
高度なクエリ分析機能は、フックを使用して実装されたクエリ指標と実行プランを記録する拡張機能を読み込みます。指標は AlloyDB テーブルに保存され、正規化された実行プランは Cloud Trace に保存されます。
これらの指標には、Google Cloud コンソールの AlloyDB Query Insights ページでアクセスできます。指標は、クエリの完了から 30 秒以内に拡張 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 のデータ保持ポリシーの詳細については、割り当てと上限をご覧ください。
制限事項
- 高度なクエリ分析機能によって公開される指標は、Cloud Monitoring API では使用できません。
- クライアント IP アドレスのサポートは利用できません。
- セカンダリ インスタンスを含むクラスタでは、高度な Query Insights 機能を有効にできません。クラスタにセカンダリ インスタンスを作成する前に、クラスタ内のすべてのインスタンスで高度な Query Insights 機能を無効にする必要があります。
- AlloyDB は、プライマリ インスタンスと読み取りプール インスタンスの Query Insights データを 30 日間保存します。プライマリ インスタンスのデータの保存には約 180 GB の容量が消費されます。この容量は、クラスタ内に存在するリードプール ノードの数に応じて増加する可能性があります。使用されるストレージの最大サイズは 700 GB です。
- 読み取りプール インスタンスで有効にする前に、プライマリ インスタンスで高度な Query Insights 機能を有効にする必要があります。
- 高度な Query Insights 機能を有効にすると、Query Insights ダッシュボードがリセットされます。ただし、Metrics Explorer の UI を使用して、標準のクエリ分析情報の指標にアクセスすることは可能です。