1/100초 사이에 한 유저가 동일한 쿼리를 날렸습니다. 거의 동시라고 봐야하는데요. ㅠㅠ
날린 쿼리는 다음과 같습니다. 간략버젼입니다.
declare @p_sum int
select @p_sum = ISNULL(SUM(point), 0)
from table_1
where userid = 'user1'
if @p_sum < 1000
insert into table_1 (userid, point) values('user1', 1000)
문제는 거의 동시에 쿼리가 작동된 경우 위에서 보시는 if @p_sum < 1000 조건이 안먹힌다는겁니다.
물론 동일 세션에선 조건이 적용되는것 같은데요. 웹환경이다보니 서로 다른 세션에서 1/100초사이의 동시쿼리가 SQL 서버로 전달됩니다.
제가 뭔가 착각하고 있는게 있을까요? 서로 다른 세션일경우 어떤 처리를 추가해야되는건지 막막합니다.
도와주십시오
|