inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

myeonjeong님의 게시글

myeonjeong myeonjeong

@myeonjeong

수강평 작성수
2
평균평점
5.0

게시글 3

질문&답변

cursor 동작원리

그리고 executeInternal 을 실행하고 나면, 이런식으로 rows 를 개수만큼 가져오게 되는데 이건 실제 데이터가 아니라 (실제 데이터는 db 메모리에 전부 올라가있고) 그에 접근할 수 있는 자료구조를 따로 제공해줬다.... 그러므로 데이터가 아무리 많아도 메모리 이슈는 생기지 않는다. 라고 생각하면 되는걸까요? 답변 기다리겠습니다! 감사합니다!!

좋아요수
1
댓글수
2
조회수
860

질문&답변

cursor 동작원리

더하여 처음 한 번 resultSet 이 만들어지고, 그것을 기반으로 계속 읽기가 진행되니 중간에 조건에 맞는 row 들이 더 추가되더라도 대상건으로 잡히지 않는 것이겠군요! 확인 부탁드립니다! 감사합니다 ㅎㅎ

좋아요수
1
댓글수
2
조회수
860

질문&답변

JdbcCursorItemReader 쿼리 실행 시점과 ResultSet 동작 방식이 궁금합니다.

안녕하세요 선생님. 비슷한 고민을 하다가 이 질문을 찾아오게 되었는데요, 예를들어 1000 건의 데이터가 있고, 100건씩 데이터를 처리하려고 하더라도 실제로 SQL 자체는 단 한번 실행되고, 데이터베이스 서버에서 해당 resultSet 을 가지고있으면서 cursor 를 batch application 으로 반환하고, cursor 를 통해서 필요시 DB server 에 실제 데이터를 요청한다고 이해했습니다. (그리고 받은걸 메모리에 올려서 작업) 그러면 결국 DB 서버에서는 그 많은 데이터를 전부 메모리에 올려놓고 batch 작업이 종료될 때까지 유지해야한다고 이해했는데, 혹시 제가 이해한게 맞나요?!

좋아요수
3
댓글수
2
조회수
893