ROWID가 무엇인지, 숫자/문자/날짜형 컬럼의 인덱스 구조를 살펴보자.
ROWID
: 테이블 행
의 주소
file
번호 + block
번호+ row
번호select rowid, empno
from emp;
직접 rowid
라고 명시해줘야지만 출력이 된다.
인덱스
: DB 검색 속도를 높이
는 DB 오브젝트
정렬
된다 (ASC)월급
컬럼에 인덱스를 생성한다면, sal
과 rowid
로 구성된다.create index emp_sal on emp(sal);
select sal,rowid
from emp
where sal>=0;
--조건절로 sal을 넣어줘야지 인덱스를 통해 옵티마이저가 작동함
--인덱스에서 읽어오면 sal이 정렬이 된 것을 확인 가능
ename
에 인덱스를 둔다고 생각하자.
ABC..
순으로 정렬된다ROWID
를 통해 빠르게 테이블 행을 찾을 수 있다create index emp_ename on emp(ename);
select ename,rowid
from emp
where ename>' ';
--공백문자보다 크다고 조건절줘야 인덱스 사용
hiredate
에 인덱스를 건다고 생각하자.
asc
순으로 정렬된다. (오래된 순으로)create index emp_hiredate on emp(hiredate);
select hiredate, rowid
from emp
where hiredate < to_date('9999/12/31','RRRR/MM/DD');
--9999년 12월 31일보다 작다고 조건절을 줘야 인덱스로 출력