계속 오라클만 사용하다가 새로운 프로젝트에 투입되었는데 MS-SQL 을 사용하는군요
그런데 DB 관련한 몇가지 문제중에 시퀀스의 충돌 문제가 발생한다고 합니다.
상황을 들어보니(아직 투입된지 얼마 안되어서 소스까지는 못 보았습니다.) 시퀀스를 얻어오는 과정에서
1. MS-SQL 자체의 increment 를 사용하지 않고(increment 가 맞던가요...^^;;;) 별도의 테이블로 시퀀스를 관리하고
2. 이 과정에서 시퀀스의 충돌이 자주 발생한다고 하더군요
여기서 제가 궁금한건....(게시판 검색을 통해서 MS-SQL 의 lock 시스템을 약간 공부했습니다.)
1. 오라클의 select for update 와 같은 기능이 없는가?
2. 없다면 락을 걸고, select 후 update.. 혹은 update 후 select 를 하는 과정에서 dirty read 가 발생할 소지가 다분한것이 맞는가?
3. 2 의 현상이 맞다면.. lock level 을 올려서 해결하는 것이 정석인가?
하는 것입니다.
|