micronaut를 사용한 느린 JPA 실행
총 실행 시간이 약 400-800ms인 간단한 jpa 선택 쿼리를 실행하려고 합니다.
쿼리 방법은-
list findAllByCodeAndItemIdAndItemClass(String code, String itemId, String itemClass);
위 jpa 쿼리의 실행 메트릭은 다음과 같습니다.
14:57:55.820 [default-nioEventLoopGroup-1-5] INFO o.h.e.i.StatisticalLoggingSessionEventListener - Session Metrics {
1373200 nanoseconds spent acquiring 1 JDBC connections;
22600 nanoseconds spent releasing 1 JDBC connections;
89600 nanoseconds spent preparing 1 JDBC statements;
402081800 nanoseconds spent executing 1 JDBC statements;
0 nanoseconds spent executing 0 JDBC batches;
0 nanoseconds spent performing 0 L2C puts;
0 nanoseconds spent performing 0 L2C hits;
0 nanoseconds spent performing 0 L2C misses;
0 nanoseconds spent executing 0 flushes (flushing a total of 0 entities and 0 collections);
3600 nanoseconds spent executing 1 partial-flushes (flushing a total of 0 entities and 0 collections)
}
Result Found: 1
====> Execution Time: 410ms
이 쿼리에 대한 일반 JDBC 호출은 약 70-90ms가 걸리지만 hikari 풀과 함께 micronaut 데이터를 사용하면 실행 시간이 jdbc 실행 시간보다 훨씬 깁니다. Microsoft SQL 서버 데이터베이스를 사용하고 있습니다. 프로젝트에서 사용되는 관련 종속성은 다음과 같습니다.
<parent>
<groupId>io.micronaut</groupId>
<artifactId>micronaut-parent</artifactId>
<version>3.5.2</version>
</parent>
<properties>
<packaging>jar</packaging>
<jdk.version>17</jdk.version>
<release.version>17</release.version>
<micronaut.version>3.5.2</micronaut.version>
<micronaut.data.version>3.4.2</micronaut.data.version>
<micronaut.runtime>netty</micronaut.runtime>
<exec.mainClass>com.data.Application</exec.mainClass>
</properties>
<dependency>
<groupId>io.micronaut.data</groupId>
<artifactId>micronaut-data-hibernate-jpa</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.micronaut.sql</groupId>
<artifactId>micronaut-jdbc-hikari</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<scope>runtime</scope>
</dependency>
아래는 application.yml의 데이터 소스 구성입니다.
datasources:
default:
url: jdbc:sqlserver://xxxxxxxxxxx;databaseName=xxxxxxx;
username: xxxxxx
password: xxxxxx
driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
dialect: SQL_SERVER
jpa:
default:
properties:
hibernate:
hbm2ddl:
auto: none
generate_statistics: true
format_sql: true
show_sql: true
현재 정상적인 jdbc 실행 시간보다 훨씬 더 긴 micronaut 데이터로 더 나은 성능과 실행 시간을 달성하기 위해 어떤 최적화를 수행할 수 있는지 또는 추가 구성을 추가할 수 있는지 제안하십시오.
Reference
이 문제에 관하여(micronaut를 사용한 느린 JPA 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/upoudelppl/slow-jpa-execution-with-micronaut-4noc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)