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 1eine FROMKlausel 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.