안녕하세요.
오라클에서 유일한 키를 생성하기 위한 채번 관련 문의 드립니다.
동시성이 많이 일어나는 특정 테이블들에 무결성 제약 조건 위배 오류가 발생되어 시퀀스 생성으로 변경후 문제가 해결되었는데요
이와 관련해서 선배님들의 의견을 듣고 싶습니다.
프로젝트를 위해 흔히들 채번 생성을 위해 max( ) +1 을 이용하는데요.
저의 생각은
max + 1 을 하기 위해 table full scan 해야 하는 단점도 있고,
insert 할때 다른 세션들의 중복값이 들어갈 위험도 있고 해서,
채번은 max+1 보다는 sequence 를 주로 이용하고 있습니다.
효율성, 안정성 등을 고려해 볼때 어떤 방식이 효율적인지
선배님들의 많은 조언 부탁 드립니다.~~~~
기존 쿼리
insert into 테이블 ( pk칼럼, 칼럼1, 칼럼2) values
(
( select max(pk칼럼) + 1 from 테이블 )
, 칼럼1 값,
, 칼럼2 값......
)
변경 쿼리
(
테이블시퀀스.NEXTVAL
, 칼럼1 값,
, 칼럼2 값......
)
|