2015-06-24 14 views
6

Ich habe postgresql-9.4 und läuft, und ich habe pg_stat_statements Modul in letzter Zeit mit Hilfe der offiziellen documentation aktiviert.pg_stat_statements aktiviert, aber die Tabelle existiert nicht

Aber ich bin immer folgende Fehler auf Nutzung:

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(); 

Ich bin angemeldet mit dem Postgres-Benutzer psql. Ich habe auch geprüft, um die verfügbare Erweiterung Listen:

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) 

Und hier ist das Ergebnis der Erweiterung Versionen Abfrage:

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) 

Jede Hilfe geschätzt wird.

+0

Vielleicht ist der Posgres Benutzer den Sie verwenden, wird der Zugriff der Erweiterung nicht erlaubt. Um 'pg_stat_statements_reset()' zu verwenden, müssen Sie Superuser sein, wenn ich mich nicht irre. –

+0

Danke, Alter für den Kommentar, aber ich habe es überprüft, postgres ist superuer: 'postgres = # show is_superuser; is_superuser -------------- auf (1 row) ' – Hett

Antwort

11

Erweiterung nicht installiert ist:

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

Wenn die Tabelle leer ist, erstellen Sie die Erweiterung:

CREATE EXTENSION pg_stat_statements; 
+0

Hmm..but ich diese Zeilen hinzugefügt haben postgresql.conf und den Server neu gestartet. 'shared_preload_libraries = 'pg_stat_statements' \t \t # (ändern Neustart erforderlich) pg_stat_statements.max = 1000 pg_stat_statements.track = all' Sollte ich etwas anderes tun? – Hett

+12

sollten Sie CREATE EXTENSION ausführen pg_stat_statements; –

+1

Danke! Mein Fehler, ich dachte, dass er automatisch erstellt wird, nachdem er zu postgresql.conf hinzugefügt wurde. – Hett