适用于 Azure Database for PostgreSQL–灵活服务器的查询性能见解
适用于: Azure Database for PostgreSQL - 灵活服务器
Query Performance Insight 为 Azure Database for PostgreSQL 灵活服务器数据库提供智能查询分析。 它有助于确定工作负荷中资源消耗最多且运行时间最长的查询。 这可帮助你找到要优化的查询,以提高整体工作负荷性能并有效使用要支付的资源。 Query Performance Insight 通过提供以下功能,帮助减少排查数据库性能问题所花费的时间:
- 确定长时间运行的查询及其随时间的变化。
- 确定影响这些查询的等待类型。
- 有关按调用(执行计数)、数据使用情况、IOPS 和临时文件使用情况(改进性能的潜在优化候选项)的主要数据库查询的详细信息。
- 向下钻取查询的详细信息、查看查询 ID 和资源利用率历史记录的能力。
- 深入洞察数据库整体资源消耗。
先决条件
注意
当前已禁用查询存储。 查询性能见解依赖于查询存储数据。 需要通过将动态服务器参数 pg_qs.query_capture_mode
设置为 ALL 或 TOP 来启用它。
注意
查询存储等待采样当前已禁用。 查询性能见解依赖于查询存储等待采样数据。 需要通过将动态服务器参数 pgms_wait_sampling.query_capture_mode
设置为 ALL 来启用它。
- 日志分析工作区配置为存储 3 个日志类别:Azure Database for PostgreSQL 灵活服务器会话日志、Azure Database for PostgreSQL 灵活服务器查询存储和运行时,以及 Azure Database for PostgreSQL 灵活服务器查询存储等待统计信息。 若要配置 Log Analytics,请参阅 Log Analytics 工作区。
注意
查询存储数据不会传输到 Log Analytics 工作区。 Azure Database for PostgreSQL 灵活服务器日志(会话数据/查询存储运行时/查询存储等待统计信息)不会发送到日志分析工作区,后者是使用 Query Performance Insight 所必需的。 配置 Azure Database for PostgreSQL 灵活服务器的诊断设置,并将数据发送到 Log Analytics 工作区。
权限
需要为 Azure Database for PostgreSQL 灵活服务器分配以下 Azure 基于角色的访问控制 (Azure RBAC) 权限,然后才能使用 Query Performance Insight:
- 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
使用查询性能见解
Azure 门户中的 Query Performance Insight 视图会显示来自查询存储的关键信息的可视化效果。 Query Performance Insight 很容易使用:
打开 Azure 门户,找到要检查的 Azure Database for PostgreSQL 灵活服务器实例。
在左侧菜单中,打开“智能性能”>“Query Performance Insight”。
选择用于调查查询的时间范围。
在第一个选项卡上,查看长时间运行的查询列表。
使用滑块或缩放功能更改观察间隔。
(可选)可以选择“自定义”以指定时间范围。
注意
若要使 Azure Database for PostgreSQL 灵活服务器在 Query Performance Insight 中呈现信息,查询存储需要捕获几个小时的数据。 如果在某段时间内数据库不活动或查询存储不活动,则 Query Performance Insight 在显示该时间范围时,图表将是空的。 如果查询存储未运行,随时可以启用它。 有关详细信息,请参阅有关查询存储的最佳做法。
若要查看特定查询的详细信息,请单击
QueryId Snapshot
下拉列表。若要获取特定查询的查询文本,请连接到服务器上的
azure_sys
数据库并使用QueryId
查询query_store.query_texts_view
。在“连续”选项卡上,可以找到其他查询见解,包括:
- 等待统计信息
- 主要查询(按调用数)
- 主要查询(按数据使用量)
- 主要查询(按 IOPS)
- 主要查询(按临时文件数)
注意事项
- Query Performance Insight 不可用于只读副本。
- 若要运行 Query Performance Insight,数据必须存在于查询存储中。 查询存储是一项选择加入功能,因此默认情况下它未在服务器上启用。 对于给定服务器上的所有数据库,查询存储处于全局启用或禁用状态,且无法针对每个数据库打开或关闭查询存储。
- 在可突发定价层上启用查询存储可能会对性能产生负面影响,我们不建议在该层上启用它。
后续步骤
- 详细了解如何在 Azure Database for PostgreSQL 灵活服务器中进行监视和优化。