PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Hibernate lent pour acquérir une connexion Postgres

Je l'ai corrigé =) J'ai vraiment dû fouiller pour trouver la réponse à celle-ci. Fondamentalement, il s'agit de charger les métadonnées et le pilote JDBC. Il charge TOUTES LES META DATA, y compris les commentaires à côté des colonnes sql et d'autres constructions diverses, qui ne sont pas nécessaires au fonctionnement. Je ne sais pas pourquoi cette fonctionnalité est activée par défaut, mais vous devez absolument désactiver cette fonctionnalité, sauf si vous en avez explicitement besoin :

config.setProperty("hibernate.temp.use_jdbc_metadata_defaults","false");

Connexion instantanée maintenant !

La seule information que j'ai pu trouver à ce sujet est dans le code :

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