JDBC RESULTSET 과 커서에 대해 질문이 있습니다 0 1 994

by 열정가이 [어플리케이션관련] JDBC [2017.12.29 18:20:11]


JDBC를 이용하여 ORACLE에 연결하면 RESULTSET 객체에 SQL결과를 담아서 읽어오는데

이때 학교에서 RESULTSET 은 실제로 읽어온 테이블을 담고있는 객체가 아닌 테이블의 각 로우가 갖고있는 커서를 갖고 있다고 하는데

여기서 커서가 무엇이고 어디있는건가요?

제가 궁금하게 생각이 드는건 데이터를 읽을때 SGA에 버퍼 캐시에서 데이터를 읽고, 없으면 디스크에서 읽어와 버퍼 캐시에 캐싱 후 읽는 다고 알고 있습니다. 그럼 만약 어플리케이션에서 위와 같이 JDBC를 이용해서 대용량 데이터를 읽어 온다면 동일하게 버퍼캐시에 테이블이 캐싱되고 그 테이블의 로우를 가르키는 커서가 RESULTSET에 담기게 될텐데, 만약 다른 사용자가 다른 테이블을 읽어오다가 현재 사용자가 버퍼캐시에 캐싱해 놓은 데이터를 밀어내고 다른 데이터가 버퍼 캐시에 캐싱된다고 하면....

초기 사용자가 아직 애플리케이션에서 데이터를 다 안읽은 상황이라면 커서가 사라지지않습니까?
이런 상황은 어떻게 되는건가요 ㅠ 제가 커서에 대한 개념이 잘 안잡혀 있어서 그런지 더 모르겠네요 ㅠ

RESULTSET은 커서로 이루어 져있고 커서는 테이블의 각 로우를 가르킨다고 알고 있는데 도대체 이 커서가 어디있는건가요?ㅠ
 

by 마농 [2018.01.02 10:11:36]

다른 사람이 내가 읽고 있던 동일 데이터를 바꾼다 해도
내 데이터는 최초 조회시점 기준으로 데이터를 읽어 오기 때문에 문제 없습니다.(오라클)

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입