web-dev-qa-db-ja.com

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)

どんな助けでもありがたいです。

17
Hett

拡張機能がインストールされていません:

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

テーブルが空の場合は、拡張機能を作成します。

CREATE EXTENSION pg_stat_statements;
41
cetver