Query Performance Insight 为Azure Database for PostgreSQL灵活服务器中的数据库提供智能查询分析。 它有助于识别工作负荷中消耗资源最多的查询和长时间运行的查询。 此信息可帮助你查找查询,以优化整体工作负荷性能,并有效地使用你支付的资源。 Query Performance Insight 通过提供以下功能,帮助减少排查数据库性能问题所花费的时间:
- 识别长时间运行的查询,以及它们随时间的变化。
- 确定影响这些查询的等待类型。
- 有关按调用次数(执行次数)、数据使用量、IOPS 和临时文件使用量排名靠前的数据库查询的详细信息(这些查询可能是可通过调优提升性能的候选对象)。
- 能够深入查看查询的详细信息,以查看查询 ID 和资源利用历史。
- 深入洞察数据库整体资源消耗。
先决条件
注释
查询存储 当前 处于禁用状态。 查询性能见解取决于查询存储数据。 需要通过将动态参数 pg_qs.query_capture_mode 设置为 ALL 或 TOP 来启用它。
- 查询存储等待采样已在你的数据库上启用。 如果查询存储库等待采样尚未运行,Azure 门户会提示你启用此功能。 若要启用查询存储等待采样,请参阅 “启用查询存储等待采样”。
注释
查询存储等待采样目前处于禁用状态。 查询性能见解依赖于查询存储中的等待采样数据。 需要通过将动态参数 pgms_wait_sampling.query_capture_mode 设置为 ALL 来启用它。
- Log Analytics工作区配置为存储三个日志类别:PostgreSQL 会话数据、PostgreSQL 查询存储运行时和 PostgreSQL 查询存储等待统计信息。 若要配置日志分析,请参阅 “配置和访问日志”。
注释
查询存储数据不会传输到 Log Analytics 工作区。 日志(会话数据、查询存储 运行时和 查询存储 等待统计信息)不会发送至 Log Analytics 工作区,而这是使用 Query Performance Insight 的必要条件。 若要配置Azure Database for PostgreSQL灵活服务器的诊断设置并将数据发送到日志分析工作区,请参阅Azure Database for PostgreSQL中的配置和访问日志。
Permissions
若要将 Query Performance Insight 与Azure Database for PostgreSQL灵活服务器配合使用,需要向 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 很容易使用:
打开Azure门户,找到要检查的Azure Database for PostgreSQL灵活服务器。
从左侧菜单中打开智能性能>。
选择用于调查查询的时间范围。
在第一个选项卡上,查看“长时间运行的查询”列表。
使用滑块或缩放功能更改观察间隔。
(可选)选择 自定义 以指定时间范围。
若要查看特定查询 的详细信息 ,请选择
QueryId Snapshot下拉列表。若要获取特定查询的查询文本,请连接到服务器上的
azure_sys数据库并使用query_store.query_texts_view查询QueryId。在连续的选项卡上,可以找到其他查询见解,包括:
- 等待统计数据
- 主要查询(按调用数)
- 主要查询(按数据使用量)
- 主要查询(按 IOPS)
- 按临时文件划分的排名靠前的查询
注释
若要让 Azure Database for PostgreSQL 灵活服务器在 Query Performance Insight 中显示相关信息,查询存储需要捕获数小时的数据。 如果数据库没有活动,或者查询存储在特定时间段内未处于活动状态,则当 Query Performance Insight 显示该时间范围时,图表为空。 如果查询存储当前未运行,则可以随时启用查询存储。 有关详细信息,请参阅 查询存储的最佳做法。
注意事项
- Query Performance Insight 不可用于只读副本。
- 要使查询性能见解正常工作,查询存储必须具有数据。 由于查询存储是一项选择加入功能,因此默认情况下不会在服务器上启用该功能。 为服务器上的所有数据库全局启用或禁用查询存储。 不能为单个数据库打开或关闭它。
- 在突发型定价层上启用查询存储可能会对性能产生负面影响。 不要在该层上启用它。