기술 정보
home
채널 소개
home

TAC 환경에서 CACHE 설정 시 Sequence 값이 순차 부여되지 않는 현상

문서 유형
장애 해결
분야
관리/환경설정
키워드
sequence
TAC
cache
적용 제품 버전
6FS07
1 more property

현상

TAC 환경에서 NO ORDER + CACHE 옵션의 sequence 를 사용할 때 순서대로 채번되지 않는 현상이 발생합니다.

원인

TAC 환경에서 CACHE + NO ORDER 옵션일 때, node1 에서 cache 사이즈만큼 시퀀스를 뛰어넘은 후 node2 에서 할당된 캐시사이즈의 뒷 번호부터 시작하게 됩니다.
그로 인해 실질적으로는 순서대로 채번되지 않는 현상이 발생하게 됩니다.

1. NO ORDER 옵션에서 sequence 생성

CREATE SEQUENCE NO_ORDER INCREMENT BY 1 START WITH 1 NOMAXVALUE MINVALUE 1 NOCYCLE CACHE 5 NOORDER ;
SQL
복사

2. 조회 결과

NODE 1에서 NODE2 에 할당된 CACHE 값을 넘는 수 만큼 select NO_ORDER.nextval from dual; 조회 시 순서대로 채번되지 않는 것 확인 가능합니다.
SQL> select NO_ORDER.nextval from dual; NEXTVAL 1 1 row selected. SQL> select NO_ORDER.nextval from dual; NEXTVAL 2 1 row selected. SQL> select NO_ORDER.nextval from dual; NEXTVAL 5 1 row selected. SQL> select NO_ORDER.nextval from dual; NEXTVAL 11 1 row selected.
SQL
복사

해결

ORDER 옵션을 주었을 때는, 다른 노드에게 캐시 사이즈만큼 할당된 번호로 올라가지 않고 순차적으로 채번됩니다.
참고
order 옵션 사용 시 부하가 발생할 수 있습니다. 사이트 환경에 맞게 CACHE, ORDER/NO ORDER 옵션을 사용하는 것을 권고합니다.