Query Performance Insight は、Azure Database for PostgreSQLフレキシブル サーバー内のデータベースに対してインテリジェントなクエリ分析を提供します。 これは、ワークロードでリソースを消費し、実行時間の長いクエリを特定するのに役立ちます。 この情報は、ワークロード全体のパフォーマンスを向上させ、支払うリソースを効率的に使用するために最適化するクエリを見つけるのに役立ちます。 Query Performance Insight を使用すると、以下が提供され、データベースのパフォーマンスのトラブルシューティングに費やす時間を短縮できます。
- 実行時間の長いクエリの識別、および時間の経過と伴うクエリの変化。
- これらのクエリに影響している待機タイプの特定。
- 呼び出し回数(実行回数)、データ使用量、IOPS、および一時ファイル使用量ごとの上位データベースクエリの詳細(パフォーマンス改善のためのチューニング候補となる可能性があります)。
- クエリの詳細をドリルダウンして、クエリ ID とリソース使用率の履歴を表示する機能。
- データベース リソース全体の消費量の詳細な分析情報。
[前提条件]
- データベースでクエリ ストア が有効になっています。 クエリ ストアが実行されていない場合、Azure ポータルで有効にするように求められます。 クエリ ストアを有効にするには、「 クエリ ストアを有効にする」を参照してください。
注
クエリ ストア は現在 無効になっています。 Query Performance Insight は、クエリ ストア データに依存します。 動的パラメーター pg_qs.query_capture_mode を ALL または TOP に設定して有効にする必要があります。
- クエリ ストアの待機サンプリング は、データベースで有効になっています。 クエリ ストアの待機サンプリングが実行されていない場合、Azure ポータルで有効にするように求められます。 クエリ ストア待機サンプリングを有効にするには、「 クエリ ストア待機サンプリングを有効にする」を参照してください。
注
クエリ ストアの待機サンプリング は現在 無効になっています。 Query Performance Insight は、クエリ ストア待機サンプリング データに依存します。 動的パラメーター pgms_wait_sampling.query_capture_mode を ALL に設定して有効にする必要があります。
- Log Analytics ワークスペースは、PostgreSQL セッション データ、PostgreSQL クエリ ストア ランタイム、PostgreSQL クエリ ストア待機統計など、3 つのログ カテゴリを格納するように構成されています。 ログ分析を構成するには、「 ログの構成とアクセス」を参照してください。
注
クエリ ストア のデータは、ログ分析ワークスペースに送信されません。 ログ (セッション データ、クエリ ストア ランタイム、クエリ ストア待機統計) は、Query Performance Insight を使用するために必要なログ分析ワークスペースに送信されません。 Azure Database for PostgreSQLフレキシブル サーバーの診断設定を構成し、データをログ分析ワークスペースに送信するには、Azure Database for PostgreSQLでのログの構成とアクセスに関するページを参照してください。
Permissions
Azure Database for PostgreSQL フレキシブル サーバーで Query Performance Insight を使用するには、お使いの PostgreSQL フレキシブル サーバーに次の Azure ロールベースのアクセス制御 (Azure RBAC) アクセス許可が割り当てられている必要があります。
- Microsoft.DBforPostgreSQL/flexibleServers/configurations/read
- Microsoft.DBforPostgreSQL/flexibleServers/providers/Microsoft.Insights/diagnosticSettings/read
- Microsoft.DBforPostgreSQL/flexibleServers/read
- Microsoft.Insights/Components/read
- Microsoft.Insights/DiagnosticSettings/read
- Microsoft.Insights/DiagnosticSettingsCategories/read
- Microsoft.Insights/Logs/AzureDiagnostics/read
- Microsoft.Insights/Logs/read
Query Performance Insight の使用
Azure ポータルの Query Performance Insight ビューには、クエリ ストアからの主要な情報に関する視覚化が表示されます。 Query Performance Insight は簡単に使用できます。
Azure ポータルを開き、確認する Azure Database for PostgreSQL フレキシブル サーバーを見つけます。
左側のメニューから、[インテリジェント パフォーマンス]>[Query Performance Insight] の順に開きます。
クエリを調査する時間の範囲を選択します。
最初のタブで、実行時間の長いクエリの一覧を確認します。
スライダーまたはズームを使用して、観測された間隔を変更します。
必要に応じて、[ カスタム ] を選択して時間範囲を指定します。
特定のクエリの 詳細を表示 するには、
QueryId Snapshotドロップダウンを選択します。特定のクエリのクエリ テキストを取得するには、サーバー上の
azure_sysデータベースに接続し、query_store.query_texts_viewを使用してQueryIdのクエリを実行します。連続するタブには、次のような他のクエリ分析情報があります。
- 待機統計
- 呼び出し別の上位クエリ
- データ使用量別の上位クエリ
- IOPS 別の上位クエリ
- 一時ファイル別の上位クエリ
注
Azure Database for PostgreSQLフレキシブル サーバーが Query Performance Insight で情報をレンダリングするには、クエリ ストアで数時間のデータをキャプチャする必要があります。 データベースにアクティビティがない場合、またはクエリ ストアが一定期間アクティブではなかった場合、Query Performance Insight にその時間範囲が表示されると、グラフは空になります。 クエリ ストアが実行されていない場合は、いつでも有効にすることができます。 詳細については、「 クエリ ストアのベスト プラクティス」を参照してください。
考慮事項
- 読み取りレプリカには Query Performance Insight を使用できません。
- Query Performance Insight を機能させるには、クエリ ストアにデータが必要です。 クエリ ストアはオプトイン機能であるため、サーバーでは既定では有効になっていません。 サーバー上のすべてのデータベースに対して、クエリ ストアをグローバルに有効または無効にします。 個々のデータベースに対してオンまたはオフを切り替えることはできません。
- Burstable 価格レベルでクエリ ストアを有効にすると、パフォーマンスに悪影響を及ぼす可能性があります。 そのレベルでは有効にしないでください。