JDBC를 이용하여 ORACLE에 연결하면 RESULTSET 객체에 SQL결과를 담아서 읽어오는데
이때 학교에서 RESULTSET 은 실제로 읽어온 테이블을 담고있는 객체가 아닌 테이블의 각 로우가 갖고있는 커서를 갖고 있다고 하는데
여기서 커서가 무엇이고 어디있는건가요?
제가 궁금하게 생각이 드는건 데이터를 읽을때 SGA에 버퍼 캐시에서 데이터를 읽고, 없으면 디스크에서 읽어와 버퍼 캐시에 캐싱 후 읽는 다고 알고 있습니다. 그럼 만약 어플리케이션에서 위와 같이 JDBC를 이용해서 대용량 데이터를 읽어 온다면 동일하게 버퍼캐시에 테이블이 캐싱되고 그 테이블의 로우를 가르키는 커서가 RESULTSET에 담기게 될텐데, 만약 다른 사용자가 다른 테이블을 읽어오다가 현재 사용자가 버퍼캐시에 캐싱해 놓은 데이터를 밀어내고 다른 데이터가 버퍼 캐시에 캐싱된다고 하면....
초기 사용자가 아직 애플리케이션에서 데이터를 다 안읽은 상황이라면 커서가 사라지지않습니까?
이런 상황은 어떻게 되는건가요 ㅠ 제가 커서에 대한 개념이 잘 안잡혀 있어서 그런지 더 모르겠네요 ㅠ
RESULTSET은 커서로 이루어 져있고 커서는 테이블의 각 로우를 가르킨다고 알고 있는데 도대체 이 커서가 어디있는건가요?ㅠ