Db2 11.1

Caching von IBM Data Server Driver for JDBC and SQLJ -Anweisungen

Der IBM® Data Server Driver for JDBC and SQLJ kann einen internen Anweisungscache verwenden, um die Leistung von Java™-Anwendungen durch Caching und Pooling vorbereitete Anweisungen zu verbessern.

Internes Anweisungscaching ist für Verbindungen verfügbar, die IBM Data Server Driver for JDBC and SQLJ type 4 connectivity verwenden, oder für Verbindungen, die IBM Data Server Driver for JDBC and SQLJ type 2 connectivity unter Db2 for z/OS verwenden.

Sie aktivieren das Zwischenspeichern von internen Anweisungen auf eine der folgenden Arten:

Wenn das Caching interner Anweisungen aktiviert ist, kann der IBM Data Server Driver for JDBC and SQLJ PreparedStatement -Objekte, CallableStatement -Objekte und JDBC-Ressourcen zwischenspeichern, die von SQLJ-Anweisungen verwendet werden, wenn diese Objekte oder Ressourcen logisch geschlossen sind. Wenn Sie die Methode close explizit oder implizit in einer Anweisung aufrufen, schließen Sie die Anweisung logisch.

Die Verwendung einer zuvor zwischengespeicherten Anweisung ist für Anwendungen transparent. Der-Anweisungscache ist für das Leben einer offenen Verbindung vorhanden. Wenn die Verbindung geschlossen wird, löscht der Treiber den Anweisungscache und schließt alle gepoolten Anweisungen.

Eine logisch offene Anweisung wird für das Caching unter einer der folgenden Bedingungen nicht auswählbar:

Wenn der IBM Data Server Driver for JDBC and SQLJ versucht, eine Anweisung zwischenzuspeichern, und der interne Anweisungscache voll ist, bereinigt der Treiber die am wenigsten verwendete zwischengespeicherte Anweisung und fügt die neue Anweisung ein.

Der interne Anweisungscache wird unter den folgenden Bedingungen gelöscht:

In einem Java-Programm können Sie testen, ob der interne Anweisungscache aktiviert ist, indem Sie die Methode DatabaseMetaData.supportsStatementPooling absetzen. Die Methode gibt true zurück, wenn der interne Anweisungscache aktiviert ist.

Der IBM Data Server Driver for JDBC and SQLJ prüft nicht, ob die Definitionen der Zielobjekte von Anweisungen im internen Anweisungscache geändert wurden. Wenn Sie SQL-Datendefinitionssprachenanweisungen in einer Anwendung ausführen, müssen Sie das interne Anweisungscaching für diese Anwendung inaktivieren.

Der interne Anweisungscache erfordert zusätzlichen Speicher. Wenn der Speicher eingeschränkt wird, können Sie die JVM-Größe erhöhen oder den Wert von maxStatements verringern.