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
Posted by headiron
,