我已经启动并运行了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)
任何帮助将不胜感激。
答案 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;