SQL 기초 학습 노트(5) - 시퀀스, 인덱스, 동의어

2972 단어
흔히 볼 수 있는 데이터베이스 대상 표: 기본적인 데이터 저장 집합, 줄과 열로 구성된 보기: 표에서 논리적으로 관련된 데이터 집합 서열을 추출: 규칙적인 수치 인덱스 제공: 조회 효율 향상
(인덱스 및 동의어 이해)
시퀀스 sequences는 여러 사용자가 유일한 수치를 만드는 데이터베이스 대상에게 자동으로 유일한 수치 공유 대상을 제공할 수 있습니다. 주로 키 값을 제공하는 데 사용되며, 시퀀스 값을 메모리에 불러오면 접근 효율을 높일 수 있습니다.
CREATE SEQUENCE sequence
[INCREMENT BY n]  -- 
[START WITH n]    -- 
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}]
[{CYCLE | NOCYCLE}]     --       
[{CACHE n | NOCACHE}];  -- 

시퀀스 적용:
예를 들어 재학 중인 대학생들은 모두 유일하고 중복되지 않는 학번을 가지고 있다. 기왕 모든 사람이 가지고 있는 이상 모든 사람의 정보를 insert에 기입할 필요가 없다. 이때 서열을 사용하여 실현할 수 있다.
그래서 서열로 메인 키 값을 충당합니다.
시퀀스 생성
create sequence empseq
increment by 1
start with 1
maxvalue 10
cycle -- 
nocache-- 

시퀀스 보기
select empseq.nextval from dual;
select empseq.currval from dual;

nextval을 먼저 사용해야 합니다
빈 테이블 만들기
create table emp01
as
select employee_id , last_name , salary
from employees
where 1 = 2

데이터 추가
insert into emp01
values(1,'a',2000)

시퀀스 사용
insert into emp01
values(empseq.nextval,'a',2000)

매번 더 이상 employee를 기입할 필요가 없습니다.id 값 수정 시퀀스
alter sequence empseq
increment by 2
nocycle

시퀀스 수정은 초기값을 제외하고는alter를 사용할 수 있으며, 초기값은 시퀀스를 삭제한 후 시퀀스를 재구성하는 방법으로만 가능합니다
메모리에 시퀀스 값을 불러오면 접근 효율을 높일 수 있습니다
서열은 다음과 같은 상황에서 균열이 발생한다. 스크롤 시스템 이상 여러 테이블에서 같은 서열을 동시에 사용한다. ->emp1에서 empseq 서열을 사용하여 얻은 키 값은 3이고, emp2에서도 empseq 서열을 사용하여 얻은 키 값은 4이다. 그러면 emp1에서 empseq를 사용하여 얻은 값은 5이다. 그러면 균열이 생긴다.
메모리(NOCACHE)에 시퀀스 값을 로드하지 않는 경우 테이블 USERSEQUENCES 현재 시퀀스에 대한 유효한 값 보기
시퀀스 삭제
drop sequence empseq;

색인:
테이블과 다른 디스크나 테이블 공간에 저장할 수 있는 독립된 모델 대상
색인이 삭제되거나 파손되면 표에 영향을 주지 않으며, 그 영향은 조회의 속도에 불과하다
인덱스가 설정되면 Oracle 관리 시스템은 자동으로 이를 관리하고 Oracle 관리 시스템에 의해 인덱스를 언제 사용할지 결정합니다.사용자는 검색어에서 어떤 인덱스를 사용할 것인지를 지정할 필요가 없다
하나의 테이블을 삭제할 때, 이 테이블에 기반한 모든 인덱스는 자동으로 삭제됩니다
포인터를 통해 Oracle 서버 쿼리 속도 향상
데이터를 신속하게 검색하여 디스크 I/O 감소
자동 생성: PRIMARY KEY 또는 UNIQUE 구속을 정의한 후 시스템은 자동으로 해당 열에 고유 색인을 작성합니다.
수동 작성: 다른 열에서 고유하지 않은 색인을 작성하여 질의를 가속화할 수 있습니다.
create index emp01_id_ix
on emp01(employee_id)

색인을 삭제하려면 다음과 같이 하십시오.
drop index emp01_id_ix

색인은 언제 만듭니까?
다음과 같은 경우 색인을 만들 수 있습니다.
열의 데이터 값 분포 범위가 매우 넓다
열은 WHERE 자문 또는 연결 조건에 자주 나타납니다.
표는 자주 방문되고 데이터량이 매우 많으며 방문한 데이터는 대략 데이터 총량의 2%에서 4%를 차지한다
언제 색인을 만들지 않습니까?
다음과 같은 경우에는 색인을 만들지 마십시오.
시계가 매우 작다
열이 연결 조건으로 자주 표시되지 않거나 WHERE 자문에 나타납니다.
2~4% 이상의 쿼리 데이터
자주 업데이트
동의어-synonym
동의어를 사용하여 동일한 객체에 액세스하려면 다음과 같이 하십시오.
다른 사용자에 쉽게 액세스할 수 있는 객체
대상 이름의 길이를 줄이다
CREATE SYNONYM e FOR employees;
select * from e;

좋은 웹페이지 즐겨찾기