시퀀스는 객체로써 자동으로 증가하는 숫자를 사용할 수 있습니다.
시퀀스는 순차적으로 생성되며 Unique한 속성을 가지고 있을 수 있으므로 PK같은 컬럼에 사용하기에 용이합니다.
생성 문법
CREATE SEQUENCE [이름]
INCREMENT BY [증감숫자] -- 양수면 증가 음수면 감소 기본 1
START WITH [시작숫자] -- 시작숫자의 최초 값은 증가일때 MINVALUE, 감소일때 MAXVALUE
MINVALUE [최솟값]
MAXVALUE [최대값]
CYCLE OR NOCYCLE -- CYCLE : 최대값에 도달하면 최소값부터 다시 시작 / NOCYCLE : 최대값 생성시 중지
CACHE [숫자, 생략가능] OR NOCACHE -- CACHE : 메모리에 시퀀스 값을 미리 할당 / NOCACHE 시퀀스값을 메로리에 할당하지 않음
ORDER OR NOORDER -- ORDER : 반드시 순차적으로 모두 채워서 시퀀스를 사용 / NOORDER : 시퀀스 값을 건너뛸 수 있음
수정 문법
ALTER SEQUENCE [시퀀스 이름]
[INCREMENT BY 증가단위]
[MAXVALUE 최대값]
[MINVALUE 최소값]
[CYCLE | NOCYCLE]
[CACHE | NOCACHE]
*단 START WITH 값은 수정이 불가능합니다.
삭제 문법
DROP SEQUENCE [시퀀스 이름]
CACHE/NOCACHE 옵션
CACHE옵션을 사용하면 BUFFERS 영역에 시퀀스 값을 미리 띄어놓게되어 CPU 사용량을 줄일 수 있습니다.
RAC환경에서는 CACHE 옵션때문에 시퀀스 번호 증가 이상이 나타날 수 있습니다.
관련 내용 : https://doughman.tistory.com/11
[ORACLE] Sequence 증가 이상 - Cache (Last Number와 Currval 값 차이)
시퀀스가 꼬여서 순서가 이상해진 적이 있는데 nextval로 increment만큼 증가시킨 값을 가져오니 그럴 일이 없었다.. 확인해보니 currval와 sequence의 last number 값이 20정도 차이가 났는데 해당 sequence의 '
doughman.tistory.com
ORDER/NOORDER
ORDER는 반드시 숫자를 모두 채워서 시퀀스를 사용해야 하는 옵션입니다.
NOORDER는 빈값이 있을 수 있습니다.
순차적으로 모든 숫자가 빠짐이 없어야할 경우 ORDER 옵션을 넣어야 RAC구성에서 시퀀스가 빠짐없이 순서를 지킬 수 있습니다.
출처 : https://subbak2.tistory.com/16
[Oracle] 시퀀스의 옵션에 담긴 의미
1. 시퀀스(Sequence)란? 시퀀스란 영어로 '순서'라는 의미를 갖고 있다. 오라클에서는 시퀀스를 객체로 사용해 자동으로 증가하는 숫자를 사용하는데 이용한다. 2. 시퀀스가 필요한 이유 예를 들어
subbak2.tistory.com
※CACHE/ORDER 옵션 유무에 따른 결과차이 테스트
https://bae9086.tistory.com/297
시퀀스(Sequence) Cache 옵션 유/무 , Order 옵션 유/무 테스트
바로 지난번 글에 시퀀스에 대한 기초적인 개념과 옵션에 대한 설명을 포스팅했습니다. 사실 이번 글을 위해서 지난 개념을 정리한 것이라고 볼 수 있는데요, 멀티 인스턴스(예 RAC)기반에서 시
bae9086.tistory.com
'Oracle > 운영' 카테고리의 다른 글
[Oracle과 Tibero] DB link 에러 발생시 프로시저 에러발생여부 테스트 (0) | 2021.08.31 |
---|---|
시퀀스(Sequence) Cache 옵션 유/무 , Order 옵션 유/무 테스트 (0) | 2021.08.05 |
SID와 SERVICE NAME의 차이 및 확인법 (0) | 2021.07.09 |
통계정보 수집 방법 비교 ANALYZE vs DBMS_STATS (0) | 2021.07.02 |
ANALYZE INDEX VALIDATE STRUCTURE (0) | 2021.06.23 |
댓글