Частичный запрос Spring Data JDBC очень медленный для одной и той же таблицы - PullRequest
0 голосов
/ 27 апреля 2019

Метод getConnection Hikari выполняется медленно под нагрузкой. В том же выборе я получаю поздний ответ для частичных записей. Например, один выбор возвращает 10 мс, а другой 2000 мс за одну и ту же таблицу одновременно. Я посмотрел ответ dynatrace и метод getConnection hikari потребляет sql времени. Моя конфигурация как;

spring.datasource.hikari.connection-timeout=10000
spring.datasource.hikari.maximum-pool-size=1000
spring.datasource.hikari.minimum-idle=30
spring.datasource.hikari.idle-timeout=60000
spring.datasource.hikari.max-lifetime=180000
spring.datasource.hikari.connection-test-query=select 1 from dual

hikariConfig.addDataSourceProperty("cachePrepStmts", "true");
hikariConfig.addDataSourceProperty("prepStmtCacheSize", "250");
hikariConfig.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");

Этих конфигураций достаточно для высокой степени параллелизма, поэтому мое приложение имеет 30 миллионов транзакций в день, и каждая транзакция использует db для выбора некоторых данных. Как я могу решить проблему времени ответа метода getConnection?

Окружающая среда

HikariCP version: 2.7.9
JDK version : 1.8.0_161-b14
Database : Oracle 11.2.0.4.0 - 64 bit
Driver version : ojdbc6-11.2.0.3
...