오라클 시퀀스

반응형
728x90
반응형

시퀀스의 개념

데이터의 '순서'를 뜻하며, 시퀀스를 객체로 사용하여 자동으로 증가하는 숫자로 사용한다.

 

시퀀스 생성 예시

CREATE SEQUENCE [이름]
INCREMENT BY [증감숫자]
START WITH [시작숫자] 
MINVALUE [최솟값] 
MAXVALUE [최대값]
CYCLE OR NOCYCLE 
CACHE [숫자, 생략가능] OR NOCACHE 
ORDER OR NOORDER

 

위 옵션들을 하나씩 알아보자.

 

1) INCREMENT BY [증감숫자]

시퀀스에서 생성할 번호의 증가 값이다. 설정하지 않으면 default 1을 가진다.

 

2) START WITH [시작 숫자]

시퀀스의 시작값을 지정한다.

 

3) MINVALUE [최솟값]

시퀀스에서 생성할 번호의 최솟값을 지정한다.

 

4) MAXVALUE [최댓값]

시퀀스에서 생성할 번호의 최댓값을 지정한다.

 

5) CYCLE OR NOCYCLE 

시퀀스에서 생성한 번호가 최댓값에 도달했을 경우 설정에 따라 수행된다.

- CYCLE : 시작값으로 돌아가서 처음부터 다시 시작한다.

- NOCYCLE : 최댓값에 도달하여, 중지된다.

 

6) CACHE [숫자, 생략가능] OR NOCACHE

- CACHE : 메모리에 시퀀스 값을 미리 할당한다.

CACHE 10이 설정되어있을 경우, sequence 번호를 한번에 10개씩 메모리에 올려놓고 작업을 한다. 만일 메모리에 21~30번까지 시퀀스 번호를 올려놓았다고 가정할때, DB를 재시작하게 되면 메모리에 있던 21~30번은 삭제되고 31~40번까지의 시퀀스 번호가 새로 올라가기 때문에 21번~30번의 시퀀스 번호가 존재하지않을 수 있다.

 

- NOCACHE : 메모리에 시퀀스 값을 미리 할당하지 않는다.

 

 

7) ORDER OR NOORDER

거의 사용할 일이 없다. 위 CACHE, NOCACHE 옵션으로 대체할 수 있다.

- ORDER : 시퀀스를 순차적으로 모두 채운다.

- NOORDER : 시퀀스의 값을 건너뛸 수 있다.

 

 

 

 

시퀀스 사용

CURRVAL

-- 마지막에 생성된 시퀀스를 가져온다.
SELECT sequence명.CURRVAL FROM DUAL;

 

NEXTVAL

-- 다음으로 생성될 시퀀스를 가져온다.
SELECT sequence명.NEXTVAL FROM DUAL;

 

 

 

시퀀스 사용의 장단점

장점

1) unique한 값을 자동 생성할 수 있다.

2) 쿼리에 sequence명.nextval 을 사용하여 쉽게 사용할 수 있다.

3) 테이블과 독립적으로 젖아되고 생성된다.

4) 메모리에 Cache되었을 때 시퀀스값의 액세스 효율이 증가 한다.

5) PK 관리가 수월해진다.

 

단점

1) 옵션값에 따라 또는 DB의 비정상적인 종료로 인해 순차적으로 번호 관리가 안될 수 있다. 

2) 테이블과 같이 시퀀스도 Object다. 생성 및 사용에 번거로움이 있다.

 

 

 

 

 

Reference.

https://subbak2.tistory.com/16

https://hong-study.tistory.com/99#recentEntries

https://denodo1.tistory.com/273

반응형

'Computer Science > Database' 카테고리의 다른 글

데이터베이스 조인  (0) 2022.01.02
DB Lock  (0) 2021.12.21

Designed by JB FACTORY