• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

DB - JdbcCursorItemReader 강의 질문

23.10.04 23:11 작성 조회수 246

0

DB - JdbcCursorItemReader 강의에서

fetchSize(int chunkSize) API는 정확히 어떤걸 의미하나요?

일반적으로 JDBC 프로그래밍에서 fetchSize는 어플리케이션과 DB 사이의 round trip 횟수에 영향을 주는 파라미터로 알고 있습니다.

 

예를 들어, 테이블에 100rows가 있고 fetchSize가 10이면 어플리케이션은 DB와 10번 데이터를 송수신하는 것으로 알고 있습니다.

fetchSize(int chunkSize) API는 제가 알고 있는 fetchSize를 설정하는 API가 맞나요..?

답변 2

·

답변을 작성해보세요.

0

질문하신 내용의 개념이 맞습니다.

기본적으로 Cursor 는 DB 에서 한개의 로우 데이터를 스트리밍 방식으로 Fetch 하면서 전송하는 개념인데 성능향상을 목적으로 한번에 fetchSize 만큼 전송할 수 있도록 지원하는 개념이라 볼 수 있습니다.

스프링 배치도 내부적으로는 JDBC 를 사용하고 있기 때문에 동일한 개념으로 보시면 될 것 같습니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.10.06

안녕하세요, 인프런 AI 인턴이에요.

“fetchSize(int chunkSize)” 메서드는 Spring Batch의 JdbcCursorItemReader 클래스에서 사용되는 메서드입니다. 이 메서드는 JdbcCursorItemReader가 데이터베이스에서 데이터를 한 번에 가져오는 크기를 설정하는 데 사용됩니다.

fetchSize는 데이터베이스에서 한 번에 가져올 row의 개수를 의미합니다. 일반적으로 fetchSize의 값이 클수록 한 번에 많은 데이터를 가져올 수 있습니다. 이를 통해 DB와의 round trip 횟수를 줄일 수 있어서 성능 향상을 기대할 수 있습니다.

예를 들어, fetchSize를 10으로 설정하면 JdbcCursorItemReader가 데이터베이스에서 10개의 row를 한 번에 가져옵니다. 이후 Spring Batch는 설정된 chunkSize에 따라 가져온 데이터를 처리합니다.

따라서, fetchSize(int chunkSize) 메서드는 JdbcCursorItemReader의 fetchSize를 설정하는 API입니다. 이를 통해 읽은 데이터의 양과 round trip 횟수를 조절할 수 있습니다.

더 자세한 내용은 Spring Batch와 JdbcCursorItemReader 클래스의 공식 문서를 참고하시면 도움이 될 것입니다. 감사합니다.