pg_stat_statements
L'estensione di PostgreSQL che risponde alla domanda «cosa sta davvero consumando tempo in questo database». La prima cosa da abilitare in produzione e quasi sempre l'unica necessaria.
L'estensione normalizza ogni istruzione SQL sostituendo le costanti con segnaposto, così mille chiamate con ID diversi contano come una sola voce. Per ciascuna raccoglie numero di chiamate, tempo di esecuzione totale e medio, deviazione standard, numero di righe e letture e scritture su buffer e disco.
Ordinare per tempo totale anziché medio permette di individuare il vero colpevole: una query da due millisecondi eseguita un milione di volte costa più del report da un minuto che gira una volta a notte. Richiede che la libreria sia caricata in shared_preload_libraries, e quindi un riavvio.