Долгое подключение к БД

137
23 февраля 2018, 17:44

Есть такой код

long start = System.currentTimeMillis();
PoolDataSource pds = PoolDataSourceFactory.getPoolDataSource();
System.out.println("getPoolDataSource: " + (System.currentTimeMillis() - start));
start = System.currentTimeMillis();
pds.setConnectionFactoryClassName("oracle.jdbc.pool.OracleDataSource");
pds.setURL("jdbc:oracle:thin:@//oraclewin:1521/MyDB");
pds.setUser("user");
pds.setPassword("pass");
pds.setInitialPoolSize(0);
System.out.println("Init DataSource: " + (System.currentTimeMillis() - start));
start = System.currentTimeMillis();
Connection con1 = pds.getConnection();
System.out.println("getConnection1: " + (System.currentTimeMillis() - start));
start = System.currentTimeMillis();
Connection con2 = pds.getConnection();
System.out.println("getConnection2: " + (System.currentTimeMillis() - start));

И он выдает такие времена

getPoolDataSource: 451
Init DataSource: 17
getConnection1: 3008
getConnection2: 123

Вопрос: почему getPoolDataSource и установка первого соединения такие медленные? Это нормально или можно что-то подкрутить?

Причем, если идти в отладчике по шагам, то время выполнения этих двух операций возрастает в разы

getPoolDataSource: 2370
getConnection1: 26795
getConnection2: 10979

Но это, как я понимаю, из-за общения с отладчиком. Но операции сами по себе изначально долгие. Что там происходит?

База на соседнем компьютере в локальной сети

READ ALSO
Чем заменить дерево вложенных классов

Чем заменить дерево вложенных классов

Всем добрый деньК примеру есть какая-то сущность, которая в себе содержит как примитивы(доступ через setter/getter), так и более сложные структуры,...

146
UCP алгоритм работы

UCP алгоритм работы

Работаю с Universal connection pool от ораклаРаботаю по такой схеме

152
Обработка строк StringBuffer/StringBuilder

Обработка строк StringBuffer/StringBuilder

В моем коде при вводе длинного текста, ничего не выводитКак исправить? А также, каким способом лучше обработать особые случаи(лишние пробелы,...

174
Как убрать белую окантовку у decrement / increment button?

Как убрать белую окантовку у decrement / increment button?

Написал стиль для для scroll-pane / scroll-bar:

134