시퀀스는 객체로써 자동으로 증가하는 숫자를 사용할 수 있습니다.
시퀀스는 순차적으로 생성되며 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
ORDER/NOORDER
ORDER는 반드시 숫자를 모두 채워서 시퀀스를 사용해야 하는 옵션입니다.
NOORDER는 빈값이 있을 수 있습니다.
순차적으로 모든 숫자가 빠짐이 없어야할 경우 ORDER 옵션을 넣어야 RAC구성에서 시퀀스가 빠짐없이 순서를 지킬 수 있습니다.
출처 : https://subbak2.tistory.com/16
※CACHE/ORDER 옵션 유무에 따른 결과차이 테스트
https://bae9086.tistory.com/297
'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 |
댓글