Estou trabalhando no AWS RDS Postgres v9.6 e também na v14. Percebi que em nosso shared_preload_libraries
parâmetro, pg_stat_statement
incluímos. Eu não entendo por que isso precisa estar lá.
Nos documentos do Postgres , diz o seguinte:
O módulo deve ser carregado adicionando pg_stat_statements a shared_preload_libraries em postgresql.conf, porque requer memória compartilhada adicional. Isso significa que é necessário reiniciar o servidor para adicionar ou remover o módulo.
No entanto, várias outras extensões já estão incorporadas - por exemplo, usamos dblink
e hstore
. Estes não precisam estar em shared_preload_libraries
. Por que pg_stat_statement
se comporta de forma diferente?
Acho que esclarecer isso me ajudaria (e espero que outros) a entender melhor como funcionam as bibliotecas incorporadas, especialmente no que diz respeito ao shared_preload_libraries
parâmetro. Os documentos não parecem dizer o suficiente sobre este tópico, ou então não sei onde encontrá-lo.
pg_stat_statements
armazena seus dados em um segmento de memória compartilhada, e o PostgreSQL só permite a criação de segmentos de memória compartilhada quando o servidor é iniciado. Portanto, a extensão deve ser carregada no momento em que o servidor é iniciado.