L'impostazione log_min_duration_statement viene ignorata


15

Sto correndo Postgresql 9.1su Ubuntu. La versione esatta di Postgresql è 9.1+129ubuntu1come mostra il mio gestore di pacchetti.

Ho 2 database che sono attivamente in uso e sono utilizzati da un server remoto.

Desidero registrare le query che hanno tempi di esecuzione lunghi. Quindi ho impostato i seguenti parametri nel /etc/postgresql/9.1/main/postgresql.conffile

log_min_duration_statement = 10000
log_statement = 'mod'

quindi Postgresql registrerà le query che richiedono più di 10 secondi.

Ma quando ho reloadla configurazione di Postgres, Postgresql inizia a registrare ogni query che si adatta al log_statementvalore. Che ho impostato la durata su 100 secondi per essere sicuro

log_min_duration_statement = 100000

Ma Postgresql continua a registrare ogni query adatta al log_statementvalore, indipendentemente dal log_min_duration_statementvalore.

L'impostazione log_statementsu nonesembra interrompere la registrazione.

C'è qualcosa che mi è mancato della configurazione?


Il fatto è che si registra l'unione dei due set, non l'intersezione di esso. Non so se può essere fatto come desideri.
dezso

Quindi, dovrei disabilitare (commentare), log_statementquindi log_min_duration_statementdovrebbe funzionare?
FallenAngel

Se si vuole semplicemente registrare tutte le dichiarazioni a lungo in esecuzione (sia esso un SELECT, UPDATEo qualche DDL), allora sì.
dezso

Risposte:


21

Eri vicino. La tua ultima idea è in realtà la strada da percorrere:

log_statement = none
log_min_duration_statement = 10000

Quindi non verrà registrata alcuna istruzione, ad eccezione di quelle che durano più di 10 secondi, inclusa la stringa di query stessa. La registrazione potrebbe sembrare arrestarsi perché 10 secondi è una soglia elevata. Sto usando normalmente 2 secondi, ma YMMV.

Questa risposta correlata su SO ha di più:
Impossibile far funzionare log_min_duration_statement


3
Consentitemi di aggiungere che l'impostazione predefinita log_statementè none, quindi non impostarla o impostarla su noneha lo stesso effetto.
dezso
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.