我有一个 Azure PostgreSQL Flex Server 实例,部署了适当的共享库集,特别是服务器参数
AUTO_EXPLAIN
,根据用于识别慢速查询的 azure 文档,在其他所需参数中已启用。
服务器在几分钟内重新启动,我将 auto_explain.log_min_duration 设置为 5000
(毫秒)。此后,我对该实例进行了查询,需要 6 秒多的时间才能完成。然而,在 Azure Monitor Metrics 边栏选项卡中,我使用以下内容进行了查询:
Oldest Query
Max
(只有一种)
其他指标运行良好,例如
Database Is Alive
。是否缺少启用
查询存储的部分?
AUTO_EXPLAIN。
并且您想要执行 Metric 以查看最旧的查询。
ALTER SYSTEM SET aut_explain.log = 'on' RESTART;
此设置适用于整个 PostgreSQL 实例中的所有会话,并尝试启用 auto_explain
扩展的日志记录功能。接下来,正如您所要求的,您要查询最旧的查询 使用 PostgreSQL 客户端连接到 Azure PostgreSQL Flex Server 并运行命令
SELECT query, execution_time, timestamp
FROM pg_stat_statements
ORDER BY timestamp DESC
LIMIT 10;
上述查询尝试从 pg_stat_statements
系统视图检索有关最近执行的查询的信息。运行上述查询后,您可以在 Azure Monitor 指标中查看查询结果 在 Azure Monitor Metrics 中查看查询结果
Azure PostgreSQL Flex Server > 监视器 > 指标 > 选择“pg_stat_statements”作为指标名称。
选择所需的时间范围。 单击“查询”选项卡并运行以下查询:
SELECT query, execution_time, timestamp
FROM pg_stat_statements
ORDER BY timestamp DESC
LIMIT 10;