Client support 이슈로 작성하게 된 Data Dump API.
기능적으로는 문제가 없었는데.. Performance가 생각만큼 나오지 않았다.
DBA 팀에 속도가 너무 느리다고 문의 해 보니, Query 자체는 빠르게 실행된다고..
그러면서 fetch size를 증가시켜 보란다.
Googling 해보니, Oracle JDBC의 default FetchSize가 10이다.
Query 자체는 Optimize 되어서 빠르게 실행되고 있는데, 한 번 가져올 때 10개만 가져오다보니 Data Entry 개수가 많을 경우에 DB에 Revisiting 하는 회수가 증가하면서 Query 실행시간은 빠른데 JDBC side 에서는 느릴 수 밖에 없었던 것이다.
일단은 ResultSet에 fetchSize를 100으로 늘려 주어서 8초 걸리던 Query가 1초 이내에 실행되게 되었는데, fetchSize는 Statement level에서도 설정해 줄 수 있는 config 이다.
흐... 10 년 넘게 Java 개발하면서 이런 부분을 모르고 있었다니..
좀 많이 쪽 팔리는 일이..
뭐 그래도 어쩃든 DBA 도움 덕분에 성능을 크게 향상시키고 새로운 걸 알게 되었으니,
그게 어디여....
'개발자세상 > 자바세상' 카테고리의 다른 글
Control character in XML (0) | 2014.05.28 |
---|---|
jboss db pooling timeout (0) | 2014.03.01 |
Timeout increase for axis soap client (0) | 2014.02.25 |
자바 DEBUGGING (0) | 2013.11.20 |
Spring property (0) | 2013.10.15 |