More

오라클 시퀀스 증가값 1로 설정했는데 20씩 올라가는 현상 해결방법

오라클에서 컬럼 넘버 증가값 사용을 위해 시퀀스를 설정했는데 시작값(MIN_VALUE)을 1로 설정하고 증가값을(INCREMENT_BY) 1로 설정했는데 한번에 20씩 증가하는 현상이 생기는 현상 해결방법입니다.


20씩 증가하는 시퀀스

테이블을 하나 만들면서 번호로 컬럼에 사용할 시퀀스를 하나 만들었습니다. 최소값 1에 증가값 1로 시작했는데 데이터를 몇번 NEXTVAL명령어로 넣다 보니 아래 그림처럼 현재 LAST_NUMBER 값이 121로 들어가있습니다.

20씩-시퀀스-증가


시퀀스 이상 증가값의 해결법

SQL Developer에서 확인해보니 캐시가 설정되어 있고 캐시 크기가 20으로 되어있는 걸 확인 할 수 있습니다. 이 캐시가 문제였던 걸로 캐시 크기만큼 증가값이 더해지는 증상입니다. 시퀀스를 만들때 캐시 부분을 설정하지 않았는데 아예 캐시 없음으로 설정해서 만들지 않으면 이렇게 나오는 것 같네요.

20값이 20으로 설정

지정하지 않았는데 캐시 크기가 20으로 되어있습니다


이 부분을 캐시 없음으로 변경해주면 증가값이 20씩 올라가지 않습니다.

캐시없음 설정

캐시 없음으로 바꿔줍니다


캐시 없음으로 바꾼 후 시퀀스를 실행해보니 INCREMENT_BY 설정값대로 1씩 올라가고 있습니다.
시퀀스-정상-증가

처음엔 103에서

시퀀스-정상-증가

실행 후 1씩 올라갑니다