테이블에 있는 데이터 보다 빠르게 접근하기 위해서 설계된 기능
테이블과 관련 있으나, Oracle에서의 데이터베이스 저장 공간(네임스페이스)에 저장, 자동 관리
지정된 열명을 중심으로 모든 데이터를 재정렬 수행
-> 많은 양의 큰 데이터에서 Index로 지정한 열명으로 모든 데이터 들을 재정렬 시간이 걸리기에 효율이 떨어짐
조건을 만족하는 대상이 되는 데이터가 전체 데이터에서 차지하는 비율에 따라서 Optimizer 실행 계획을 다르게 하므로 컬럼 순에 따라 인덱스 사용이 달라짐
select 문을 사용하더라도 pk로 index해서 rowid를 찾는것이 좋음
create index index명 on 테이블명(컬럼명,...)
복안 인덱스를 생성할 수 있고 컬럼 뒤에 DESC 등일 지정할 수 있음
View와 유사
view 같은 경우 관리자가 권한을 부여
from 뒤에 소유자를 밝혀 해당 테이블 사용
통계정보는 Oracle Optimizer가 SQL 쿼리에 대해 최적의 방법으로 데이터를 추출 할 수 있는 경롤르 결정하는 오라클의 내부구조
미리 정한 일정한 순서대로 실행되는 규칙기반
데이터베이스의 현재 상태를 분석하는 비용 기반
비용기반이 더 나은 성능을 제공하고, 인덱스로 작업하는 경우 대부분 비용 기반으로 처리
=> 이를 처리 하기 위해 통계 정보가 필요
범위 검색
전체를 찾아서 조건에 만족하는 것을 찾는 것이 아니라 인덱스에 범위를 지정하여 범위 조건에 맞지 않는 것은 무시하고, 조건에 맞는 것들만 처리하여 속도를 향상
user_ind_columns
Execution plan
Operation: 어떠한 방식으로 처리가 이루어졌는지에 대한 설명
access by index rowid 로 테이블에 접근한 뒤
index range scan: 스캔 sales_demo_idk를 사용하여
access : 조건에 접근한 것을 나타냄
set autotrace on explains
set timing on
=> 경과 시간과 Execution에 대한 정보 출력
연속적으로 입력되는 데이터에 어떤 순서 값을 자동으로 부여할 때 사용
Primary Keyrk 적용된 컬럼에 순서적으로 번호를 부여할 때 주로 사용
create sequence 시퀀스_명: SEQUENCE 생성
NEXTVAL: 자동으로 다음 번호
INCREMENT BY: 증가값 지정하여 증가값 조절, DEFAULT=1
START WITH: 시작값 지정, DEFAULT=1
cycle: 최대값을 넘길 시 시작값부터 다시 시퀀스 번호 지정
: NEXTVAL로 자동으로 다음 값 추가
계정 생성과 잠금, 권한 주기 등
Role은 사용자들이 가질 수 있는 권한들을 묶어서 여러 롤로 만들어 두고, 롤에 사용자를 넣어서 해당 사용자들이 해당 Role에 들어 있는 사용자들은 해당 롤에 주어진 권한만 사용하게 하는 것
Rolde-based로 사용자를 관리
create role role1 생성
not identified, identified, by password, externally 등을 옵션으로 사용
관리자가 생성하는데, 사용사를 생성하는 것과 동일
USERS는 오라클이 생성되는 사용자들이 사용하게 하는 tablespace