2011-09-29 7 views

답변

2

네,하지만

update/insert/delete won't and can't be "dirty"은 READUNCOMMITTED와 NOLOCK을 삽입, 업데이트 또는 삭제 작업에 의해 수정 된 테이블을 지정할 수 없습니다. SQL Server 쿼리 최적화 프로그램은 UPDATE 또는 DELETE 문의 대상 테이블에 적용되는 FROM 절의 READUNCOMMITTED 및 NOLOCK 힌트를 무시합니다.

그것은이 "기능"이 SELECT들에 NOLOCK으로 어쨌든

되지 않습니다 말을 계속,이 잠금도 발행이나 관찰을 의미합니다. 같은 링크에서

없음 공유 잠금은 현재 트랜잭션에서 읽은 데이터를 수정하는 다른 트랜잭션을 방지하기 위해 발행하고, 다른 트랜잭션에 의해 설정된 배타적 잠금은 잠금 데이터를 읽는에서 현재 트랜잭션을 차단하지 않습니다.

그래서 :

  • 자신에 select가 공유 잠금을 발행하지 않는
  • 다른 잠금을 무시 당신은 이유를 알고, 모든 곳에서 NOLOCK 발행에 관해서는

(더티 읽기) 당신은 그것을 할? 나 또는 다른 높은 rep 사용자가 여기에 반대하는 것이 좋습니다 ...

당신은 스냅 숏 격리를 고려해야한다 (이하 "권한"사이트가 잘못 주) 경우 (또는 인덱스/쿼리를 고정) 너무 많음 입증 됨 블로킹 읽기

0

예, 가능합니다. 격리 수준은 사용자가 업데이트/삽입/삭제할 수 없음을 의미하지 않습니다.

격리 수준은 ACID에 관한 것보다 더 높습니다. 잠긴 것은 무엇이며 은 다른 세션에 표시되는 내용입니다. 위키 피 디아에서

, Isolation (database systems) :

데이터베이스 시스템에서, 분리는 하나 개의 작업에 의한 변경은 다른 동시 작업에 표시 될 때 방법/정의하는 속성입니다.

관련 문제