2010-02-04 1 views

답변

3

당신은 SQL 문이 가정, 예를 들어, 다음 코드에 해당하는 것이다 UPDATE table SET a = a + 1 WHERE ...는 :

read a 
a = a + 1 
write a 

는 두 클라이언트 A와 B가 동시에 이것을 실행하는 것으로 가정합니다. 다음과 같은 현상이 발생할 수 있습니다 (위에서 아래로 시간이 흐릅니다).

A   B 
read a  
      read a 
a = a + 1 
write a 
      a = a + 1 
      write a 

어떻게됩니까? a은 한 번만 증가하지만 두 번 증가시켜야합니다. 이는 고전적인 동시성 충돌입니다. 이러한 충돌을 피하기 위해 데이터베이스는 트랜잭션자물쇠을 사용합니다.

+0

위대한 설명. 고맙습니다. – LearningCSharp

0

두 개의 트랜잭션이 단지 some.Here 찾기 위해 구글을 사용이 많은 자습서를 database.There에서 하나 개의 자원을 잠금을 시도 할 때 동시성 충돌이 발생할 것입니다 링크 link text

+0

감사합니다. Google에서 msdn을 얻었습니다. http://msdn.microsoft.com/ en-us/library/dd937753 (SQL.105) .aspx, 그러나 개념이 무엇인지 이해할 수 없었습니다. 귀하의 링크가 좀 더 도움이됩니다. 감사합니다 – LearningCSharp