pg_stat_statements已启用,但该表不存在

时间:2015-06-24 08:12:28

标签: postgresql psql pg-stat-statements

我已经启动并运行了postgresql-9.4,并且我已经在官方documentation的帮助下最近启用了pg_stat_statements模块。

但我在使用时遇到以下错误:

postgres=# SELECT * FROM pg_stat_statements;
ERROR:  relation "pg_stat_statements" does not exist
LINE 1: SELECT * FROM pg_stat_statements;


postgres=# SELECT pg_stat_statements_reset();
ERROR:  function pg_stat_statements_reset() does not exist
LINE 1: SELECT pg_stat_statements_reset();

我使用postgres用户登录psql。 我还检查了可用的扩展名列表:

postgres=# SELECT * FROM pg_available_extensions WHERE name = 'pg_stat_statements'
;
        name        | default_version | installed_version |                          comment                          
--------------------+-----------------+-------------------+-----------------------------------------------------------
 pg_stat_statements | 1.2             |                   | track execution statistics of all SQL statements executed
(1 row)

以下是扩展版本查询的结果:

postgres=# SELECT * FROM pg_available_extension_versions WHERE name = 'pg_stat_statements';
        name        | version | installed | superuser | relocatable | schema | requires |                          comment                          
--------------------+---------+-----------+-----------+-------------+--------+----------+-----------------------------------------------------------
 pg_stat_statements | 1.2     | f         | t         | t           |        |          | track execution statistics of all SQL statements executed
(1 row)

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:30)

未安装扩展程序:

SELECT * 
FROM pg_available_extensions 
WHERE 
    name = 'pg_stat_statements' and 
    installed_version is not null;

如果表格为空,请创建扩展名:

CREATE EXTENSION pg_stat_statements;

答案 1 :(得分:1)

我第一次使用liquibase部署环境时遇到了相同的问题。 我了解我的回复可能与您的问题无关,但是第一个Google搜索结果,因此我认为像我这样的其他人也可以带着同样的Liquibase问题到达这里。

这些是PosGreSQL元数据表,当您生成第一个xml文件时,liquibase会检索这些表。

对于我来说,这只是无用的自动生成的代码,因此我删除了以下几行来解决了该问题:

secondfunction()

答案 2 :(得分:0)

我在配置 Percona 监控和管理 (PMM) 时遇到了这个问题,因为由于某种奇怪的原因 PMM 连接到名为 postgres 的数据库,因此必须在此数据库中创建 pg_stat_statements 扩展:

yourdb# \c postgres
postgres# CREATE EXTENSION pg_stat_statements SCHEMA public;