适用于 Azure Database for PostgreSQL–灵活服务器的查询性能见解

适用于: Azure Database for PostgreSQL 灵活服务器

Query Performance Insight 为 Azure Database for PostgreSQL 灵活服务器数据库提供智能查询分析。 它有助于确定工作负荷中资源消耗最多且运行时间最长的查询。 这可帮助你找到要优化的查询,以提高整体工作负荷性能并有效使用要支付的资源。 Query Performance Insight 通过提供以下功能,帮助减少排查数据库性能问题所花费的时间:

  • 确定长时间运行的查询及其随时间的变化。
  • 确定影响这些查询的等待类型。
  • 有关按调用(执行计数)、数据使用情况、IOPS 和临时文件使用情况(改进性能的潜在优化候选项)的主要数据库查询的详细信息。
  • 向下钻取查询的详细信息、查看查询 ID 和资源利用率历史记录的能力。
  • 深入洞察数据库整体资源消耗。

先决条件

  1. 你的数据库上启用了查询存储。 如果查询存储未运行,Azure 门户将提示你启用它。 若要启用查询存储,请参阅此处

注意

当前已禁用查询存储。 查询性能见解依赖于查询存储数据。 需要通过将动态服务器参数 pg_qs.query_capture_mode 设置为 ALLTOP 来启用它。

  1. 你的数据库上启用了查询存储等待采样。 如果查询存储等待采样未运行,Azure 门户将提示启用它。 若要启用查询存储等待采样,请参阅此处

注意

查询存储等待采样当前已禁用。 查询性能见解依赖于查询存储等待采样数据。 需要通过将动态服务器参数 pgms_wait_sampling.query_capture_mode 设置为 ALL 来启用它。

  1. 日志分析工作区配置为存储 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 灵活服务器会话类别的日志记录设置,并将数据发送到日志分析工作区。

使用查询性能见解

Azure 门户中的 Query Performance Insight 视图将显示来自查询存储的关键信息的可视化效果。 Query Performance Insight 很容易使用:

  1. 打开 Azure 门户,找到要检查的 Azure Database for PostgreSQL 灵活服务器实例。

  2. 在左侧菜单中,打开“智能性能”>“Query Performance Insight”。

  3. 选择用于调查查询的时间范围

  4. 在第一个选项卡上,查看长时间运行的查询列表。

  5. 使用滑块或缩放功能更改观察间隔。 使用滑块更改观察间隔的屏幕截图。

  6. (可选)可以选择“自定义”以指定时间范围。

注意

若要使 Azure Database for PostgreSQL 灵活服务器在 Query Performance Insight 中呈现信息,查询存储需要捕获几个小时的数据。 如果在某段时间内数据库不活动或查询存储不活动,则 Query Performance Insight 在显示该时间范围时,图表将是空的。 如果查询存储未运行,随时可以启用它。 有关详细信息,请参阅有关查询存储的最佳做法

  1. 若要查看特定查询的详细信息,请单击 QueryId Snapshot 下拉列表。 查看特定查询详细信息的屏幕截图。

  2. 若要获取特定查询的查询文本,请连接到服务器上的 azure_sys 数据库并使用 QueryId 查询 query_store.query_texts_view获取特定查询的查询文本的屏幕截图。

  3. 在“连续”选项卡上,可以找到其他查询见解,包括:

    • 等待统计信息
    • 主要查询(按调用数)
    • 主要查询(按数据使用量)
    • 主要查询(按 IOPS)
    • 主要查询(按临时文件数)

注意事项

  • Query Performance Insight 不可用于只读副本
  • 若要运行 Query Performance Insight,数据必须存在于查询存储中。 查询存储是一项选择加入功能,因此默认情况下它未在服务器上启用。 对于给定服务器上的所有数据库,查询存储处于全局启用或禁用状态,且无法针对每个数据库打开或关闭查询存储。
  • 在可突发定价层上启用查询存储可能会对性能产生负面影响;因此,不建议这样做。

后续步骤

  • 详细了解如何在 Azure Database for PostgreSQL 灵活服务器中进行监视和优化