Многие библиотеки пула соединений с базой данных предоставляют возможность протестировать свои SQL-соединения для праздности. Например, библиотека пула JDBC c3p0 имеет свойство preferredTestQuery
, который запускается при соединении с заданными интервалами. Аналогично, DBCP Apache Commons validationQuery
.
Многие пример запросы Я видел для MySQL и рекомендуется использовать SELECT 1;
как значение для тестового запроса. Однако этот запрос не работает в некоторых базах данных (например, HSQLDB, для которого SELECT 1
ожидает предложение FROM
).
Есть ли агрегированный запрос базы данных, который эквивалентно эффективен, но будет работать для всех баз данных SQL?
Edit:
Если нет (похоже, это так), может ли кто-нибудь предложить набор SQL-запросов, которые будут работать для разных поставщиков баз данных? Мое намерение состояло в том, чтобы программно определить оператор, который я могу использовать на основе конфигурации поставщика базы данных.