시퀀스 만들기..속도면에서나 유일한 번호를 가져올수 있는점은 최고인거 같은데
순차적으로 번호를 안가져오는것도 그렇고.. dba가 없어서 혹시나 시퀀스가 문제라도 생기면
후폭풍을 감당할수 없어서..ㅋㅋㅋ 사용할려다가 사용안하기로 했다.
장점
1. 유일값을 생성해줌(보통 pk만들때 사용)
2. 컬럼에 sequence_name.nextval 추가하면되서 쿼리가 간단해짐 (<--개인적인생각)
3. 메모리에 cache 되었을때 시퀀스값의 액세스 효율이 증가한다.
4. 시퀀스는 테이블과는 독립적으로 저장되고 생성된다.
단점
1. DB가 비정상적으로 종료가 되었거나(PMON이 죽거나 SHUTDOWN ABORT를 사용했을경우) --> 번호 다날라감..
2. Libary Cache에서 우선순위 경합에 밀려 cache aged out 되는 경우. 사용빈도가 적어 메모리에서 삭제되는 경우가 있음
결국 번호가 순차적으로 가져오지 못하고 중간에 점프한다. -->순차적으로 번호관리 할수가 없음
--------------------------------------------------------------------------------------------------------------------------------------------------------
<구문>
▶ 생성
CREATE SEQUENCE sequence_name
[START WITH n] /*n=1 초기값은 1부터 시작한다.*/
[INCREMENT BY n] /*n=1 값은 1씩 증가한다.*/
[MAXVALUE n | NOMAXVALUE] /*n=1000 최대값은 1000 이다.*/
[MINVALUE n | NOMINVALUE]
[CYCLE | NOCYCLE] /*최대값까지 증가되었다면 다시 초기값으로 시작된다. 만약 1000 까지 갔다면 다시 초기값부터 시작한다.*/
▶ 삭제
DROP SEQUENCE sequence_name
▶ 조회
sequence_name.nextval
- 시퀀스가 가진 값을 증감한 값 조회
sequence_name.currval
- 시퀀스가 현재 가진 값 조회
--------------------------------------------------------------------------------------------------------------------------------------------------------
'DB > Oracle' 카테고리의 다른 글
procedure(프로시저)와 function(함수)의 차이 (0) | 2015.11.23 |
---|---|
오라클 DBMS_CRYPTO 암호화 (0) | 2015.11.19 |
에이전트가 emd.properties을 소유하지 않는 사용자에 의해 시작되었다 - 중단 시작 (00709) (0) | 2015.09.23 |
[에러]ORA-24816 (0) | 2015.09.23 |
[ant bulid] encode error(BufferOverflowException) (0) | 2015.09.22 |