Wiele bibliotek puli połączeń bazy danych umożliwia testowanie połączeń SQL pod kątem bezczynności. Na przykład biblioteka c3p0 buforująca JDBC ma właściwość o nazwie preferredTestQuery
, która jest wykonywana w połączeniu w skonfigurowanych odstępach czasu. Podobnie Apache Commons DBCP ma validationQuery
.
Wiele przykładowych zapytań , które widziałem, dotyczy MySQL i zalecamy użycie ich SELECT 1;
jako wartości dla zapytania testowego. Jednak to zapytanie nie działa na niektórych bazach danych (np. HSQLDB, dla których SELECT 1
oczekuje FROM
klauzuli).
Czy istnieje zapytanie niezależne od bazy danych, które jest równie wydajne, ale będzie działać dla wszystkich baz danych SQL?
Edytować:
Jeśli nie ma (co wydaje się mieć miejsce), czy ktoś może zasugerować zestaw zapytań SQL, które będą działać dla różnych dostawców baz danych? Moim zamiarem byłoby programowe określenie instrukcji, której mogę użyć, na podstawie konfiguracji mojego dostawcy bazy danych.