JSP/SERVLET
2020.10.21 / 10:21

log4jdbc 사용후 쿼리결과 속도가 느려지는데 도움좀 부탁드립니다.

추석돌이
추천 수 14


100%50%25%


<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

        <property name="driverClassName" value="${jdbc.driverClassName}"/>

        <property name="url" value="${jdbc.url}"/>

        <property name="username" value="${jdbc.username}"/>

</bean>

jdbc.driverClassName=oracle.jdbc.driver.OracleDriver

jdbc.url=jdbc:oracle:thin:@url:1521/BASE

기존설정입니다.

ibatis에서 mybatis로 변환후

log4j.xml에서

<logger name="java.sql.PreparedStatement">

<level value="DEBUG" />

<appender-ref ref="console" />

</logger>

  

java.sql.PreparedStatement로 로그가 찍히지 않아 log4jdbc를 사용하여 로그를 찍기위해서

jdbc.propertis에서 설정을

jdbc.driverClassName=net.sf.log4jdbc.DriverSpy

jdbc.url=jdbc:log4jdbc:oracle:thin:@url:1521/BASE 로 변경후 사용을 하니 로그는 정상적으로 찍히는데


쿼리수행 결과가 늦게 돌아오는거 같습니다(?)

엑셀데이터 10,782건을 업로드 속도를 기준으로 jprofiler에서 측정한 결과는

위에 사진 첨부하신걸 보면 19,785 ms가 나옵니다. 약 20초 정도 걸리는거 같은데요


실제 upload 시작지점으로부터 upload종료지점 까지의 시간을 측정해본결과 2분 55초가 걸렸네요

물론 jdbc.url=jdbc:oracle:thin:@url:1521/BASE 

로 설정하면 jprofiler에서 측정한 속도와 서비스수행 시간이 별차이 나지 않습니다.

여러가지로 문제점을 찾아보고 있는데


도저히 어떤 문제인지 몰라 이렇게 문의를 드립니다. 



1. 원래는 빠르던 것이 log4jdbc 를 적용해서 전체적인 수행속도가 느려졌다는건가요? 진짜로?

2. 1만건의 쿼리를 출력시키는 것만으로도 속도 저하가 될 수 있습니다. (I/O)

3. jdk 버전에 맞는 log4jdbc 를 사용중이신가요? (http://log4jdbc.brunorozendo.com/ )



네 사실 저도 이해하기 어렵지만 log4jdbc를 사용하면서 업로드 처리결과 속도가 현저하게 차이가 나고 있습니다. 대략 20초정도 걸리던것이 2분 50초정도 걸리고 있네요


1만건의 데이터를 출력건에 대해서 속도저하가 일어난다면 

저도 이해가 가긴 하는데 단건 데이터 조회나 다른 작업에 있어서도 jdbc.url 을 log4jdbc로 적용하고 모든 db작업에 있어서 속도가 저하되고 있습니다.


log4jdbc는 remix를 사용중입니다. 현재 지원이 중단?榮鳴煮? 하는데 일단 jdk버전에 맞아서 사용중이긴 합니다. 다른 jar파일은 maven을 사용하여 관리하고 있지는 않지만 log4jdbc와 관련한 jar파일은 일단 jdk버전에 맞춰서 사용중입니다.

이러한 현상은 처음이라 저도 당황스럽네요 답변 감사합니다.



1. net.sf.log4jdbc.Log4jdbcProxyDataSource 를 빈으로 등록해서 사용하는 방법 (별 차이는 없을듯...)

https://github.com/antop-dev/example/blob/master/log4jdbc-remix-example/src/main/resources/application.spring.xml 


2. logger 를 jdbc.sqltiming 로 거셔서 진짜 쿼리속도가 느린지 봐야할듯... 하네요..

https://github.com/antop-dev/example/blob/master/log4jdbc-remix-example/src/main/resources/logback.xml 


3. Controller 부터 DB 까지 모든 구간별 속도(평균이 아닌)를 봐야 할듯  하네요... ㅠ_ㅠ