Operating System/ORACLE

[ORACLE] 시퀀스

Growing DBA 2022. 2. 23. 17:35
728x90
반응형

* 시퀀스(Sequence)는 테이블을 생성할 때 자주 사용하는 오라클 데이터베이스이다. 대부분의 시퀀스가 요구되는 경우는 Primary key에 해당하는 일련의 정수들을 시퀀스 문장의 옵션들을 통해 자동적으로 발생한다. 컬럼에 저장시킴으로써 Primary key가 가져야 하는 조건 중 가장 중요한 유일성(Uniqueness)을 보장하기 위함이다. 특히 오라클 사용자 여러 명이 동시에 작업을 하게 되는 경우 Key 값을 설정해주기가 어려워질 수도 있기 때문이다.


* 시퀀스를 생성하는 문장의 기본형식 

CREATE SEQUENCE sequence name
          [ INCREMENTED BY number ]
          [ START WITH number ]
          [ {MAXVALUE number | NOMAXVALUE} ]
          [ {MINVALUE number | NOMINVALUE} ]
          [ {CYCLE | NOCYCLE} ]
          [ {CACHE number | NOCACHE} ] ;

-> Incremented by : Start with 옵션에 의해 시퀀스가 생성되기 시작하면 얼마씩 증가하는지에 관한 설정이다.

-> Start with : 시퀀스가 시작하는 번호를 설정한다. 

-> Maxvalue 숫자 | Nomaxvalue : 시퀀스가 가질 수 있는 최댓값을 사용자가 임의로 설정할 수 있다. 반면에 Nomaxvalue 옵션은 Ascending 순서일 때는 10^27 그리고 Descending 순서일 때는 -1로 설정된다. 오라클은 기본적으로 Nomaxvalue 옵션을 사용한다. 

-> MINVALUE 숫자 | Nominvalue : 시퀀스가 가질 수 있는 최소값을 사용자가 임의로 설정할 수 있다. 반면에 Nominvalue 옵션은 Ascending 순서일 때는 1 그리고 Descending 순서일 때는 10^26으로 설정된다. 오라클은 기본적으로 Nominvalue 옵션을 사용한다. 

-> Cycle | Nocycle : 시퀀스의 최댓값 또는 최솟값에 도달하는 경우 다시 시퀀스가 할당되도록 할 지에 대한 옵션이다. Nocycle이라면 일단 최댓값 또는 최솟값에 도달하게 되면 거기서 시퀀스는 더 이상의 번호를 할당하지 않게 된다. 오라클은 기본적으로 Nocycle 옵션을 사용한다. 

-> Cache 숫자 | Nocache : 시퀀스에 의하여 생성되는 버호 가운데 몇 개의 값을 메모리에 저장할 것인가에 관한 옵션이다. 기본적으로 오라클은 20개의 시퀀스 값을 메모리에 저장시킨다. 

 

* Primary key를 생성할 때 시퀀스를 사용하는 경우에는 Cycle 옵션을 사용하지 않도록 하는 것이 좋다. 왜냐하면 Primary key는 반드시 유일한 값을 가져야 하기 때문이다.

 

728x90
반응형