코린이의 기술 블로그

시퀀스(SEQUENCE), 인덱스(INDEX) 본문

DB의 늪

시퀀스(SEQUENCE), 인덱스(INDEX)

미늬온 2021. 10. 3. 17:39

오라클에서 사용하는 시퀀스는 유일한 (UNIQUE)한 값을 생성해주는 객체입니다

테이블 한개당 시퀀스는 한개인게 좋습니다:)

 

CREATE SEQUENCE name_seq

start with n       //n은 지정된 값이고

increment by n  //n은 순차적으로 증가하는 것이고

maxvalue n        //최대값

minvalue n         //최소값  

cycle                 //최대값에서 다시 최소값으로 돌아가는 것

chahe n            //메모리 유지 값

 

위의 식이 기본 값이며, 시퀀스 만들고 밑의 사진처럼 확인해보면 됩니다:)

CREATE SEQUENCE EMP_seq 를 생성하면

위에 테이블 밑에 시퀀스라는 곳을 보면 EMP_seq 라는 시퀀스가 생성 된것을 확인 할 수 있습니다

 

CURRVAL : 현재 값을 반환

NEXTVAL : 현재 시퀀스의 다음 값 반환

아래의 예시를 보면 

INSERT INTO EMP01

VALUES(EMP_SEQ.NEXTVAL, 'JULIA',SYSDATE);

로 행을 삽입한 경우를 살펴 보겠습니다.

삽입 후 출력하였을 경우, 시퀀스의 다음값을 출력하는 것을 알 수 있습니다

시퀀스 값 증가되는 것을 출력에서 나타나집니다:)

SELECT EMP_SEQ.CURRVAL

FROM DUAL;

는 현재 값을 반환하는 예시로 볼 수 있습니다.

값이 0이 먼저 출력하는 값을 가지게 됩니다.

시퀀스의 수정은 ALTER SEQUENCE 사용 하면 값을 수정할 수 있습니다

ALTER SEQUENCE name_seq;

 

시퀀스 삭제는 DROP SEQUENCE 사용하면 값을 삭제할 수 있습니다

DROP SEQUENCE  name_seq;

 

인덱스는 데이터를 행으로 저장하는 것이며, SELECT할때 명령어를 주지 않습니다

->검색 속도가 빠르며, 전체 성능을 향상 시켜줍니다

하지만, 추가 공간이 많이 필요하므로 오히려 저장측면에서는 성능이 저하됩니다:)

 

인덱스 생성 : CREATE UNIQUE INDEX

인덱스 삭제 : DROP INDEX index_name

 

null이 많으면 인덱스 칼럼을 만들기에는 적합하지 않습니다

 

이렇게 시퀀스와 인덱스를 알아 보았습니다:)

728x90

'DB의 늪' 카테고리의 다른 글

PL/SQL 기본/IF문  (0) 2021.10.05
VIEW(뷰)  (0) 2021.10.04
데이터 베이스 기초  (0) 2021.10.02
UML : UPDATE문, DELETE문  (0) 2021.09.30
DML : INSERT 문  (0) 2021.09.29
Comments