oracle 선착순용 sequence

오라클 시퀀스 설명

CREATE SEQUENCE BMT_TEST2
 INCREMENT BY 1
 START WITH 1
 MINVALUE 1
 MAXVALUE 3000
 NOCYCLE
 NOORDER
 NOCACHE

------=----------
  • CREATE SEQUENCE BMT_TEST2 : BMT_TEST2라는 시퀀스를 만든다.
  •  INCREMENT BY 1 : 1씩 증가시킨다.
  •  START WITH 1 : 1부터 시작한다
  •  MINVALUE 1 : 최소값은 1이다.(1부터 시작하니깐, 그닥 의미는...
  •  MAXVALUE 3000 : 최대 3000까지 증가. 무한대일 경우 보통 9999999999999 라고 적어주겠지...
  •  NOCYCLE : 값을 돌려쓰지 않는다.(즉, MAXVALUE값을 초과할려고하면 에러남)
  •  NOORDER : 순서를 보장하지 않는다.(성능 때문이지만, NOCACHE를 해서 그닥 효과는 없다.)
  •  NOCACHE : 캐시하지 않는다. 즉, 요청할 때 시퀀스의 값을 가져온다.
  • 이렇게 만들 경우 1~3000까지만 시퀜스가 발급됨, 그외로 발급을 시도할 경우 에러!
  • 물론 MAXVALUE는 최대로 두고, 시퀀스로 만들어진 값으로 체크해도 별 차이는 없다. 
    • PHP등에서
      if($seq > 3000){ exit('초과');}  
      처럼
  • 장점
    • 시퀀스는 완벽하게 순차적으로 값이 나온다.
      • 물론 매번 값을 체크하므로 성능상에 문제가 될 수 있지만, DB 테이블에서 count로 현재 상황을 알아보는 SELECT하는 것 보다는 훨씬 가볍다.(엄청나게 차이나더라)
    • 완벽하게 최대치를 제할 할 수 있다.
      • 물론 느슨한 선착순일 경우 count정도로 할 수도 있겠지만, 딱딱 맞아야한다면 시퀀스 사용이 필수다.
  • 단점
    • 시퀀스 관리가 어럽다.
      장애라도 발생할 경우, 테이블만으로 했을 경우는 테이블만 관리하면 되지만,
      시퀀스도 같이 쓸경우
      서비스중지+테이블관리+시퀀스 관리
      를 동시에 해야한다.(서비스 중지 안하면 시퀀스 관리가 안된다. 계속 시퀀스를 사용해서 값이 증가될테니깐)
-----=-----------
댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
목록형 📷 갤러리형
제목
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
유용한 리눅스(LINUX) 명령어
[공지] 기술 게시판
4.28
4.29
4.30
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
5.12
5.13
5.14
5.15
5.16
5.17
5.18
5.19
5.20
5.21
5.22
5.23
5.24
5.25
5.26
5.27
5.28
5.29
5.30
5.31
6.1