В DBeaver простой выбор (без объединений) занимает менее 1 секунды для 1700 строк.
В Java я подготовил это код, как получить данные:
- определение модели объекта
- проекция DTO класса
< li>проекция интерфейса - необработанный запрос с использованием объекта менеджер
В выводе консоли в виде журнала я вижу тот же запрос, что и Я попробовал в DBeaver.
Я также написал приложение .net 9, которое работает так же быстро, как DBeaver. Итак, я думаю, что-то не так с этой конфигурацией драйвера jbdc или oracle. Я не использую параметры привязки, только простой оператор выбора. Есть ли у вас идеи, в чем может быть проблема?
По моему мнению, я перепробовал все возможные способы, поэтому прошу экспертов по Java, могут ли они мне помочь
Спасибо
конфигурации application.yaml, если это поможет
Код: Выделить всё
spring:
datasource:
# connection data commented
driver-class-name: oracle.jdbc.OracleDriver
hikari:
connection-timeout: 20000
idle-timeout: 300000
max-lifetime: 600000
maximum-pool-size: 20
minimum-idle: 5
validation-timeout: 3000
jpa:
show-sql: true
hibernate:
jdbc:
fetch_size: 1000
ddl-auto: none
format_sql: true
use_sql_comments: true
generate_statistics: true
dialect: org.hibernate.dialect.Oracle12cDialect
logging:
level:
com:
test_package:
my_app: INFO
zaxxer.hikari: DEBUG
org.hibernate.SQL: DEBUG
org.hibernate.type.descriptor.sql.BasicBinder: TRACE
org.hibernate.stat: INFO
Решение было в настройках fetchData. По умолчанию занимает 10 строк (я так понимаю).
Код: Выделить всё
Query query = entityManager.createNativeQuery(...);
List results = query.unwrap(org.hibernate.query.NativeQuery.class).setFetchSize(1000).getResultList();
Подробнее здесь: https://stackoverflow.com/questions/792 ... db-is-slow
Мобильная версия