Azure Database for PostgreSQL 用の Query Performance Insight - フレキシブル サーバー
適用対象: Azure Database for PostgreSQL - フレキシブル サーバー
Query Performance Insight では、Azure Database for PostgreSQL フレキシブル サーバー データベースに関するインテリジェントなクエリ分析が提供されます。 これは、ワークロードで最もリソースを消費し、長時間実行されるクエリを特定するのに役立ちます。 これにより、ワークロードの全体的なパフォーマンスを向上させるため、およびコストをかけているリソースを効率的に使用するために、最適化するクエリを見つけることができます。 Query Performance Insight を使用すると、以下が提供され、データベースのパフォーマンスのトラブルシューティングに費やす時間を短縮できます。
- 実行時間の長いクエリと、その時系列的な変化を特定します。
- これらのクエリに影響を与えている待機の種類を特定します。
- 呼び出し別 (実行数)、データ使用量別、IOPS 別、一時ファイルの使用量別 (パフォーマンス向上のための潜在的なチューニング候補) の上位データベース クエリに関する詳細。
- クエリの詳細にドリルダウンして、クエリ ID とリソース使用率の履歴を表示する機能。
- データベース リソース全体の消費量の詳細な分析情報。
前提条件
- データベースでクエリ ストアが有効になっていること。 クエリ ストアが実行されていない場合、Azure portal で有効にするように求められます。 クエリ ストアを有効にするには、こちらを参照してください。
注意
クエリ ストアは現在無効になっています。 Query Performance Insight は、クエリ ストアのデータに依存しています。 これを有効にするために、動的サーバー パラメーター pg_qs.query_capture_mode
を ALL または TOP に設定する必要があります。
- クエリ ストア待機サンプリングが、データベースで有効になっていること。 クエリ ストア待機サンプリングが実行されていない場合、Azure portal で有効にするように求められます。 クエリ ストア待機サンプリングを有効にするには、こちらを参照してください。
Note
クエリ ストア待機サンプリングは現在無効になっています。 Query Performance Insight は、クエリ ストアの待機サンプリング データに依存しています。 これを有効にするために、動的サーバー パラメーター pgms_wait_sampling.query_capture_mode
を ALL に設定する必要があります。
- Log Analytics ワークスペースは、Azure Database for PostgreSQL フレキシブル サーバー セッション ログ、Azure Database for PostgreSQL フレキシブル サーバー クエリ ストアとランタイム、Azure Database for PostgreSQL フレキシブル サーバー クエリ ストア待機統計を含む、3 つのログ カテゴリを格納するように構成されています。 ログ分析を構成するには、「Log Analytics ワークスペース」を参照してください。
Note
クエリ ストアのデータはログ分析ワークスペースに転送されていません。 Azure Database for PostgreSQL フレキシブル サーバーのログ (セッション データ/クエリ ストア ランタイム/クエリ ストア待機統計) は、Query Performance Insight を使用するために必要なログ分析ワークスペースに送信されていません。 Azure Database for PostgreSQL フレキシブル サーバーの診断設定を構成し、データをログ分析ワークスペースに送信するには、「Azure Database for PostgreSQL のログの構成とアクセス - フレキシブル サーバー」を参照してください。
アクセス許可
Query Performance Insight を使用するには、Azure Database for 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 portal の Query Performance Insight ビューには、クエリ ストアの重要な情報が視覚化されます。 Query Performance Insight は簡単に使用できます。
Azure portal を開き、調べる Azure Database for PostgreSQL フレキシブル サーバー インスタンスを見つけます。
左側のメニューから、 [インテリジェント パフォーマンス]>[Query Performance Insight] の順に開きます。
クエリを調査する時間の範囲を選択します。
最初のタブで、実行時間の長いクエリの一覧を確認します。
スライダーまたはズームを使用して、観測された間隔を変更します。
必要に応じて、カスタムを選択して時間の範囲を指定できます。
Note
Azure Database for PostgreSQL フレキシブル サーバーで Query Performance Insight に情報をレンダリングするために、クエリ ストアでは数時間分のデータをキャプチャする必要があります。 一定の期間に、データベースでアクティビティが発生していない場合、またはクエリ ストアがアクティブではなかった場合、Query Performance Insight でその時間の範囲が表示されたときにグラフは空になります。 クエリ ストアが実行されていない場合はいつでも有効にできます。 詳細については、「クエリ ストアを使用するときの推奨事項」を参照してください。
特定のクエリの詳細を表示するには、
QueryId Snapshot
ドロップダウンをクリックします。特定のクエリのクエリ テキストを取得するには、サーバー上の
azure_sys
データベースに接続し、QueryId
を使用してquery_store.query_texts_view
のクエリを実行します。[連続] タブには、次のクエリ分析情報が表示されます。
- Wait Statistics
- 呼び出し別の上位クエリ
- データ使用量別の上位クエリ
- IOPS 別の上位クエリ
- 一時ファイル別の上位クエリ
考慮事項
- 読み取りレプリカには Query Performance Insight を使用できません。
- Query Performance Insight が機能するには、クエリ ストアにデータが存在している必要があります。 クエリ ストアはオプトイン機能であるため、サーバーでは既定では有効になっていません。 クエリ ストアは、特定のサーバー上のすべてのデータベースに対してグローバルに有効または無効になり、データベースごとにオンまたはオフにすることはできません。
- Burstable 価格レベルでクエリ ストアを有効にすると、パフォーマンスに悪影響を及ぼす可能性があるため、そのレベルで有効にすることは推奨されません。
次のステップ
- Azure Database for PostgreSQL フレキシブル サーバーでの監視およびチューニングの詳細を確認する。