Coding Planet
ORA-04013: number to CACHE must be less than one cycle 본문
반응형
1. 오류발생 경로
- 이미 생성된 시퀀스의 MAXVALUE를 변경하던 와중 MAXVALUE가 특정 값 이하로 설정 될 경우 오류가 발생
2. 발생원인
- MAXVALUE로 설정한 값이 CACHE로 할당된 값에 비해 너무 작아서 문제가 발생
- CASHE는 처리속도를 증가시키기 위해 SEQUENCE 번호를 한 번에 여러 개씩 메모리에 올려놓고 작업을 한다. 이러한 방법이 매번 SEQUENCE 번호를 생성하는 것보다 빠르기 때문이다. ( https://denodo1.tistory.com/273)
- CASHE 옵션이 아래 그림과 같이 20개씩 번호를 생성하도록 설정되어 있다면 한번에 1에서 20번까지의 시퀀스가 생성된다.
- 그런데 아래와 같이 MACVALUE를 70으로 설정할 경우 CACHE 설정값에 한참 못 미치게 된다.
3. 해결방법
- MAXVALUE를 CACHE를 고려하여 일정 이상으로 설정한다(여기서는 200이상)
- INCREMENT BY 10, CACHE_SIZE 20
- CASHE_SIZE를 줄인다 혹은 CASHE 옵션을 사용하지 않는다.
- ALTER DEPT_DEPTNO_SEQ NOCASHE
반응형
'SQL' 카테고리의 다른 글
프로그래머스>SELECT>12세 이하인 여자 환자 목록 출력하기 (0) | 2023.02.05 |
---|---|
프로그래머스>SELECT>서울에 위치한 식당 목록 출력하기 (0) | 2023.02.05 |
프로그래머스>SELECT>오프라인/온라인 판매 데이터 통합하기 (0) | 2023.02.04 |
프로그래머스>SELECT>재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2023.02.04 |
Mapping(사상)이란 무엇인가? (0) | 2023.01.27 |
Comments