Mikko Ohtamaa Asked: 2025-03-04 20:00:53 +0800 CST2025-03-04 20:00:53 +0800 CST 2025-03-04 20:00:53 +0800 CST PostgreSQL:将 SQL 查询和应用程序映射到 CPU 使用率 772 我们在 Ubuntu 服务器上运行着一个 PostgreSQL(带有 TimescaleDB 扩展),其负载在一年内稳步增加。 我们希望控制负载。对于 CPU 或负载,我们希望查明导致负载增加的查询,因为某些查询可能是不必要的;可以降低频率,等等。 将 PostgreSQL 查询和/或应用程序映射到 CPU 使用率的最佳方法是什么?具体来说,因为这不是单个查询,所以应该在较长的一段时间内进行某种统计信息收集。 我们目前正在使用 Datadog 来监控 PostgreSQL 和服务器,但乐意考虑任何选项。 postgresql 1 个回答 Voted Best Answer Laurenz Albe 2025-03-04T20:17:48+08:002025-03-04T20:17:48+08:00 查找最耗时的查询的规范方法是启用 pg_tat_statements。 编辑postgresql.conf,添加pg_stat_statements并将shared_preload_libraries自定义选项设置pg_stat_statements.track = all为postgresql.conf。然后重新启动 PostgreSQL 服务器,扩展程序便会开始跟踪语句执行统计信息。 收集到足够的数据后,创建扩展: CREATE EXTENSION pg_stat_statements; 并找到最耗时的语句 SELECT total_exec_time, calls, query FROM pg_stat_statements ORDER BY total_exec_time LIMIT 10;
查找最耗时的查询的规范方法是启用 pg_tat_statements。
编辑
postgresql.conf
,添加pg_stat_statements
并将shared_preload_libraries
自定义选项设置pg_stat_statements.track = all
为postgresql.conf
。然后重新启动 PostgreSQL 服务器,扩展程序便会开始跟踪语句执行统计信息。收集到足够的数据后,创建扩展:
并找到最耗时的语句