실행 환경 : sql developer에서 조회 시 2분 정도 걸리는 쿼리(1달치 조회 시 약 800만건 조금 넘게 존재)
1. createstatement 후 setFetchSize 설정
2. executeQuery 실행 후 바로 다음 라인에 Fetch Size 콘솔 로그 남김. (executeQuery 바로 윗 줄에는 로그 파일에 조회 날짜 조건 출력)
3. fetch size 확인 로그는 execute 실행 후 한 참 뒤에 콘솔 로그 출력. 콘솔 로그 출력 전에는 결과 출력 file size = 0
4. fetch size 로그 출력 후 바로 file size 증가하는 것 확인.
위의 상황으로 볼 때 rs.next() 시 쿼리를 실행하는 것이 아니라 Statement.executeQuery 실행 시 쿼리 결과 값을 갖고 있는 것으로 추정.(약 800만건의 데이터를 텍스트 파일로 저장 시 약 2.06gb)
그리고 파일 쓰기가 계속 진행되고 있는 동안 로그 파일에 조회 날짜 출력을 안 함
여기서 궁금한 점은 2기가나 되는 데이터를 어디에 들고 있다가 파일로 쓰기 시작하는 것인지 궁금.
 
참고 URL

2. https://www.ibm.com/docs/en/db2-for-zos/11?topic=applications-retrieving-data-from-tables-using-statementexecutequery-method

 

DB2 11 - Java - Retrieving data from tables using the Statement.executeQuery method

To retrieve data from a table using a SELECT statement with no parameter markers, you can use the Statement.executeQuery method. About this taskThis method returns a result table in a ResultSet object. After you obtain the result table, you need to use Res

www.ibm.com

3. https://docs.oracle.com/cd/E11882_01/java.112/e16548/resltset.htm#JJDBC28615

 

Result Set

28/54 17 Result Set Standard Java Database Connectivity (JDBC) features in Java Development Kit (JDK) include enhancements to result set functionality, such as processing forward or backward, positioning relatively or absolutely, seeing changes to the data

docs.oracle.com

 

'언어 > JAVA' 카테고리의 다른 글

String의 JVM에 들어가있는 주소값 출력  (1) 2023.12.17
Thread 기초  (0) 2023.12.17
class 초기화 블럭(initialization block)  (0) 2023.09.10
인스턴스 변수와 this  (0) 2023.09.10
클래스 상속과 메소드 오버라이딩  (0) 2023.05.06
Posted by 知彼知己百戰不殆
,