서로 다른 세션이 프로시저를 동시에 실행할 때 시간 중복을 회피하는 방법이 궁금합니다! 0 3 1,319

by 감사합니다 [Oracle 기초] [2017.04.06 15:53:36]


안녕하세요 오라클 무지렁이입니다...

이게 사실 오라클에서 처리될 문제 일지 was에서 처리되어야 할 문제일지 모르겠는데요

sysdate로 시간 데이터가 저장된 것을 확인 해보니 간혹 시간 중복이 보이는데요

저는 시간 중복이 was나 오라클 내부에서 중복을 알아서 처리해주고 저장 시켜주는 줄 알았는데 그게 아니더군요...

여러 사용자가 접속해서 값을 입력 후 버튼을 누르는 작업을 하는데요

버튼 누르는 것이 정말 동시에 발생하는 일이 많습니다. 그래서 정말 sysdate가 1초 차이나는 것이 많이 있더라고요

그래서 전 중복은 발생하지 않는구나 했는데 가끔식 초단위까지 같은것이 발생하더라구요

혹시 이런 중복을 막는 것을 프로시저에서 해줄 수 가 있나요?

아니면 혹시 timestamp 시간을 저장해서 초단위까지 세부적으로 받으면 중복이 없을까요?

미리 감사드립니다!

by jkson [2017.04.06 17:24:09]

한번에 한 user만 프로시저를 실행해야 되는 건가요?

아니면 특정 데이터 insert시 데이터에 중복된 시간이 존재하면 안 되는 건가요?


by 감사합니다 [2017.04.06 22:18:34]

프로시저에 sysdate insert되는 부분이 있어서 아마 한번에 한 유저가 실행되어야하는것 아닌가 싶습니다.

근데 프로시저 한번에 여러번 실행되면 sysdate 중복이 엄청 많지 않나요?

음 그리고 버튼이 동시에 눌리는데 한번에 한유저씩 처이히면 좀 느려지지 않나.. 

아 엄청 머리가 정리가 안되네요 ㅠㅠ


by jkson [2017.04.07 08:03:15]

한번에 한 유저만 실행하게 할 수도 있겠지만 그렇게 되면 동시성이 많이 떨어지게 되고

키 중복을 막기 위해서라면 시퀀스 같은 걸 사용하셔서 중복이 되지 않게 하실 수도 있을 것 같네요.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입