오라클이 내부적으로 SELECT문을 처리하는 과정
(데이터를 조회하는 과정)
오라클이 데이터 조회하는 순서
- parsing -> 문법 체크
컴파일은? 고급언어 -> 저급언어로 바꾸는 것(컴퓨터가 알아듣게)
오라클에서는 이 역할을 parsing이라고 한다.
- DBMS(지배인 같은 역할. 총괄 관리) -> 실행 계획(execute plan) 세움
- 옵티마이저에게 넘겨줌
- open (그 공간(무슨 공간?)을 열어줌. 객체에 접근할 수 있게. 내 안에 있는 애가 아니라 다른 컴퓨터 객체에 접근하는 거니까 걔가 공간을 열어줘야 접근 가능함. 객체에 있는 자물쇠(lock flag)를 열어준다. 객체에는 원래 자물쇠가 걸려 있다.)
- cursor. 보통 테이블 커서는 처음에 제일 첫 열, 제일 첫 행(헤더 제외)에 있다.커서 위치에 놓고 뭔가 실행하면(?) 거기 데이터가 있으면 오라클이 true, 없으면 false를 반환해 줌. 커서가 움직이면서 '그 row에 데이터가 있니?' 라고 물어보면서 있으면 true하고 fetch(row에 있는 정보를 RAM(메모리)에 올림), 없으면 false하고 빠져나감. 그렇게 row별로 쭉 커서 움직이면서 하나하나 확인하다가 더이상 row가 없으면 close함.
위에서 얘기한 cursor: 테이블을 한 개 row씩 이동하게 하는 내부적인 메커니즘
오라클에서 제공하는 refcursor는 타입이다.(varchar같은)
cursor는 조회할 때만 사용하는 듯.
ResultSet: 오라클에 살고 있는 커서를 조작하는 데 필요한 것들을 담고 있는 인터페이스