ebson

오라클 SEQUENCE 본문

DATABASE STUDY

오라클 SEQUENCE

ebson 2022. 8. 28. 13:47

1. 시퀀스 개념

  • 자동으로 순차적으로 증가하는 순번을 반환하는 데이터베이스 객체임
  • 보통 PK값에서 중복발생 방지를 위해 사용함
  • 메모리에 캐시되었을 때, 시퀀스 값에 대한 액세스 효율이 향상됨
  • 시퀀스는 테이블과 독립적으로 저장되고 생성됨 -> 하나의 시퀀스를 여러 테이블에서 사용할 수 있음

 

 

2. 시퀀스 사용이유

  • 데이터 입력 시 동시성 때문에 값이 겹치는 것을  방지함
  • COMMIT이 완료되지 않더라도 시퀀스를 사용하면 다수 사용자가 중복되지 않은 값을 얻을 수 있음

 

 

3. 시퀀스 사용시 장단점

3.1.

  • 유일한 값을 생성함
  • 인서트시 [시퀀스명].NEXTVAL와 같이 작성하면 자동 입력됨
  • 메모리 캐싱할 수 있음
  • 테이블과 독립적이므로 여러 테이블에서 사용할 수 있음

3.2.

  • DB가 비정상적으로 종료되면 시퀀스 번호가 모두 날아갈 수 있음
  • Library Cache에서 우선순위 경합에 밀려 cache aged out 되는 경우, 사용 빈도가 적어 메모리에서 삭제되는 경우가 있음 -> 순차적으로 번호관리 할 수가 없음

 

 

4. 시퀀스 사용방법

4.1. 생성

  • CREATE SEQUENCE [시퀀스명] [옵션1. 옵션2 … ]
  • 옵션
  • 1) START WITH : 시작번호
  • 2) INCREMENT BY : 증감단위, 양수면 증가, 음수면 감소, 기본값은 1
  • 3) CACHE | NOCACHE : 메모리에 시퀀스값을 미리 할당할 것인지 말 것인지 
  • 4) CYCLE | NOCYCLE : 시퀀스 값이 최대값에 도달하면 최소값부터 다시 시작 | 중지
  • 5) MAX_VALUE : 시퀀스의 최대값
  • 6) MIN_VALUE : 시퀀스의 최소값

 

4.2. 조회

  • SELECT * FROM USER_SEQUENCES;

  • SELECT [시퀀스명] FROM DUAL;

  • [시퀀스명].CURRVAL → 시퀀스의 현재 값 조회

 

4.3. 수정

  • ALTER SEQUENCE [시퀀스명] [변경하는 옵션]



4.4. 삭제

  • DROP SEQUENCE [시퀀스명]



참고 출처

https://coding-factory.tistory.com/420 

 

http://www.gurubee.net/lecture/1037 

 

https://pongshowng.tistory.com/10 

 

https://javakorea.tistory.com/entry/%EC%98%A4%EB%9D%BC%ED%81%B4-sequence-%EC%9D%98-%EC%82%AC%EC%9A%A9%EC%9D%B4%EC%9C%A0%EC%99%80-%EC%A3%BC%EC%9D%98%EC%A0%90 

 

https://junlab.tistory.com/99 




'DATABASE STUDY' 카테고리의 다른 글

오라클 INDEX  (0) 2022.08.28
오라클 NULL  (0) 2022.08.28
오라클 PL/SQL옵티마이저  (0) 2022.08.28
오라클 SQL - JOIN  (1) 2022.08.28
오라클 SQL - SUBQUERY  (1) 2022.08.28
Comments