Я завершаю небольшой проект и занимаюсь настройкой производительности перед первым выпуском. Это веб-приложение, поэтому оно получает только HTTP-запросы в форме XHR и запросов на загрузку страницы.
При запуске приложения источник данных извлекается с сервера Tomcat (через JNDI) и сохраняется в приложении. Это oracle.jdbc.xa.client.OracleXADataSource
, и, насколько я могу судить (из того, что я читал и наблюдал), это пул соединений.
В приложении каждый запрос к серверу открывает свое собственное соединение при первом вызове SQL (если он происходит). В конце каждого запроса соединение закрывается (если оно было открыто).
Так что, как часть моей настройки производительности, я пытаюсь улучшить отзывчивость этих запросов, сокращая время, необходимое для подключения к базе данных. Что вы считаете приемлемым количеством времени для установления соединения с базой данных?
Вот мои тесты, каждый запрос -
- 324 мс (1-й запрос сразу после перезапуска приложения)
- 51 мс
- 58 мс
- 56 мс
- 53 мс
- 51 мс
- 49 мс
- 48 мс
После того, как 1-е соединение было открыто и «закрыто», похоже, что соединение объединяется и используется повторно Является ли ~ 50 мс довольно обычным временем для установления соединения из пула данных?
long start = System.nanoTime();
//oracle.jdbc.xa.client.OracleXADataSource
Connection connection = dataSource.getConnection();
log.info("Connection made in: " + ((System.nanoTime()-start)/1000000) + " ms.");