티스토리 뷰

Java

JDBC, stmt.setFetchSize(Integer)

나야 2009. 9. 27. 19:01
JDBC를 사용하면서 매번 불편했던 점은

ResultSet rset= stmt.executeQuery(sql);

이런 문장을 실행하면, 질의 결과를 모두 받아와서 rset에 넣는 다는 것입니다.
따라서 대용량의 데이터를 한번에 처리할 때는 미리 받아올 데이터의 수를 제한할 필요가 있습니다.
해결책은 바로 Statement 인터페이스의 setFetchSize() 입니다.

http://benjchristensen.com/2008/05/27/mysql-jdbc-memory-usage-on-large-resultset/ 을 보고 알게되었는데,
이 글은 MySQL의 경우를 설명하고 있는데, PostgreSQL의 jdbc드라이버에도 사용할 수 있습니다.

2011.12.28 추가.
setFetchSize() 메소드의 구현방식은 jdbc 제공자에 따라 달라집니다. 
구글에서 setFetchSize()를 검색하면 나오는 
http://stackoverflow.com/questions/1468036/java-jdbc-ignores-setfetchsize  
http://dev.fyicenter.com/Interview-Questions/JDBC/What_does_setFetchSize_really_do_.html 
같은 글들이 setFechSize()를 사용하는데 도움이 될 것 같습니다. 
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함