Viele Pooling-Bibliotheken für Datenbankverbindungen bieten die Möglichkeit, ihre SQL-Verbindungen auf Leerlauf zu testen. Beispielsweise verfügt die JDBC- Poolbibliothek c3p0 über eine Eigenschaft namens preferredTestQuery
, die in konfigurierten Intervallen für die Verbindung ausgeführt wird. Ebenso hat Apache Commons DBCP validationQuery
.
Viele Beispiel Abfragen Ich habe gesehen , sind für MySQL und empfehlen die Verwendung SELECT 1;
als Wert für die Testabfrage. Diese Abfrage funktioniert jedoch nicht in einigen Datenbanken (z. B. HSQLDB, für die SELECT 1
eine FROM
Klausel erwartet wird ).
Gibt es eine datenbankunabhängige Abfrage, die gleich effizient ist, aber für alle SQL-Datenbanken funktioniert?
Bearbeiten:
Wenn dies nicht der Fall ist (was anscheinend der Fall ist), kann jemand eine Reihe von SQL-Abfragen vorschlagen, die für verschiedene Datenbankanbieter funktionieren? Meine Absicht wäre es, programmgesteuert eine Anweisung zu bestimmen, die ich basierend auf der Konfiguration meines Datenbankanbieters verwenden kann.