PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Hibernar lento para adquirir conexão Postgres


Eu consertei =) Eu realmente tive que pesquisar para encontrar a resposta para este. Basicamente, tudo se resume a carregar metadados e o driver JDBC. Ele está carregando TODOS OS META DATA, incluindo comentários ao lado de colunas sql e outras várias construções, que não são necessárias para a operação. Não sei por que isso está ativado por padrão, mas você definitivamente deve desativar esse recurso, a menos que precise explicitamente dele:
config.setProperty("hibernate.temp.use_jdbc_metadata_defaults","false");

Conexão instantânea agora!

A única informação que encontrei sobre isso está no código:
107     // 'hibernate.temp.use_jdbc_metadata_defaults' is a temporary magic value.
108     // The need for it is intended to be alleviated with future development, thus it is
109     // not defined as an Environment constant...
110     //
111     // it is used to control whether we should consult the JDBC metadata to determine
112     // certain Settings default values; it is useful to *not* do this when the database
113     // may not be available (mainly in tools usage).
114     boolean useJdbcMetadata = ConfigurationHelper.getBoolean( "hibernate.temp.use_jdbc_metadata_defaults", configValues, true );

http://grepcode.com/file/repo1.maven.org/maven2/org.hibernate/hibernate-core/4.1.1.Final/org/hibernate/engine/jdbc/internal/JdbcServicesImpl.java#JdbcServicesImpl