PostgreSQL 教程: 配置 pg_stat_statements 插件

十月 21, 2023

摘要:在本教程中,您将学习如何配置pg_stat_statements插件。

在使用 Oracle 企业版一类的数据库时,我们可以通过某些视图看到历史信息,例如在某个时间点通过哪个用户运行了哪个查询。此类视图可能有助于识别一段时间之前运行的查询及其总体统计信息,例如查询运行的总次数和平均时间消耗。通过使用名为pg_stat_statements的扩展,此类信息在 PostgreSQL 中是可见的。在本教程中,我们将讨论如何配置pg_stat_statements插件。

准备工作

为了配置此插件,我们必须有一个安装了contrib模块的 PostgreSQL 服务器。此插件是contrib模块的一部分,不涉及任何复杂的安装和配置过程。因此,只需要 Ubuntu 上的postgresql-contrib-13软件包,或 CentOS/Red Hat 上的postgresql13-contrib软件包,即可安装此插件。

操作步骤

我们将使用以下步骤配置插件:

1. 添加pg_stat_statementsshared_preload_libraries参数中:

$ psql -c "ALTER SYSTEM SET shared_preload_libraries TO pg_stat_statements"

如果需要加载多个插件,我们可以使用类似如下的命令:

$ psql -c "ALTER SYSTEM SET shared_preload_libraries TO auto_explain, pg_stat_statements, postgres_fdw"

2. 重新启动 PostgreSQL 服务器以使更改生效。其中$PGDATA是数据目录的路径:

$ pg_ctl -D $PGDATA restart

3. 在需要收集查询统计信息的数据库中,创建扩展:

$ psql -d rockdb -c "CREATE EXTENSION pg_stat_statements"

4. 通过查询pg_stat_statements视图的结果数,验证扩展:

$ psql -d rockdb -c "select count(*) from pg_stat_statements"

怎么做到的…

设置pg_stat_statements非常简单。如果已安装contrib模块,只需配置shared_preload_libraries参数,加载pg_stat_statements库即可,如步骤 1 所示。

由于对shared_preload_libraries参数的任何更改都需要重新启动,因此我们必须重新启动 PostgreSQL,如步骤 2 中所示。重新启动后,我们应该使用CREATE EXTENSION语句创建扩展,然后我们开始通过执行一些查询,进行简单的验证工作,如步骤 3 和 4 中所示。