pg_stat_statements 是 PostgreSQL 的一个模块,用于收集和提供关于数据库中执行的 SQL 语句的统计信息。这个模块允许你跟踪哪些 SQL 语句被执行、执行的频率、执行的总时间等信息,从而帮助你进行性能分析和优化。

以下是一些关于 pg_stat_statements 的基本使用示例:

1. 启用 pg_stat_statements 模块:

   在 PostgreSQL 配置文件中(通常是 postgresql.conf),确保以下设置是启用的:
   shared_preload_libraries = 'pg_stat_statements'

   然后,重新启动 PostgreSQL 服务器。

2. 创建 pg_stat_statements 扩展:

   在数据库中,执行以下 SQL 语句以创建 pg_stat_statements 扩展:
   CREATE EXTENSION IF NOT EXISTS pg_stat_statements;

3. 查询 pg_stat_statements 视图:
   -- 查看执行频率最高的 SQL 语句
   SELECT * FROM pg_stat_statements ORDER BY calls DESC LIMIT 10;

   这将返回执行频率最高的前 10 条 SQL 语句的统计信息。
   -- 查看总执行时间最长的 SQL 语句
   SELECT * FROM pg_stat_statements ORDER BY total_time DESC LIMIT 10;

   这将返回总执行时间最长的前 10 条 SQL 语句的统计信息。
   -- 查看执行时间最长的 SQL 语句
   SELECT * FROM pg_stat_statements ORDER BY max_time DESC LIMIT 10;

   这将返回单次执行时间最长的前 10 条 SQL 语句的统计信息。

这些查询将帮助你了解数据库中哪些 SQL 语句对性能有较大影响,从而进行优化。




转载请注明出处:http://www.zyzy.cn/article/detail/9025/PostgreSQL