2015-06-24 22 views
6

Ho postgresql-9.4 installato e funzionante, e ho abilitato il modulo pg_stat_statements ultimamente con l'aiuto di documentation ufficiale.pg_stat_statements abilitato, ma la tabella non esiste

Ma sto seguente errore in base all'utilizzo:

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

ho effettuato l'accesso a psql con l'utente postgres. Ho anche controllato le liste di estensione disponibili:

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) 

Ed ecco i risultati della query versioni di estensione:

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) 

Qualsiasi aiuto sarà apprezzato.

+0

Forse l'utente Posgres in uso non è consentito l'accesso l'estensione. Per usare 'pg_stat_statements_reset()' devi essere superutente se non sbaglio. –

+0

Grazie, amico per il commento, ma l'ho controllato, postgres è super: 'postgres = # show is_superuser; is_superuser -------------- su (1 row) ' – Hett

risposta

11

di estensione non è installato:

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

Se la tabella è vuota, creare l'estensione:

CREATE EXTENSION pg_stat_statements; 
+0

Hmm..but Ho aggiunto queste righe per postgresql.conf e riavviato il server. 'shared_preload_libraries = 'pg_stat_statements' \t \t # (cambiamento richiede il riavvio) pg_stat_statements.max = 1000 pg_stat_statements.track = all' Dovrei fare altro? – Hett

+12

si dovrebbe eseguire CREATE EXTENSION pg_stat_statements; –

+1

Grazie! Il mio male, ho pensato che verrà creato automaticamente dopo averlo aggiunto a postgresql.conf. – Hett

Problemi correlati