PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Hibernate langsam, um eine Postgres-Verbindung zu erhalten

Ich habe es behoben =) Ich musste wirklich herumwühlen, um die Antwort darauf zu finden. Grundsätzlich kommt es darauf an, Metadaten und den JDBC-Treiber zu laden. Es lädt ALLE META-DATEN, einschließlich Kommentare neben SQL-Spalten und anderen verschiedenen Konstrukten, die für den Betrieb nicht benötigt werden. Ich weiß nicht, warum dies standardmäßig aktiviert ist, aber Sie sollten diese Funktion auf jeden Fall deaktivieren, es sei denn, Sie benötigen sie ausdrücklich:

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

Sofortige Verbindung jetzt!

Die einzige Information, die ich dazu finden konnte, ist im 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