현재 내 저장 프로 시저 내의 모든 select 문에서 각 테이블 다음에 with (nolock)
이 지정되었습니다.READ UNCOMMITTED 격리 수준에서 SQL DB에 대해 업데이트 쿼리를 실행할 수 있습니까?
저장 프로 시저 상단에 다음 코드를 추가하면 저장 프로 시저에서 업데이트/삽입/삭제 쿼리를 실행할 수 있습니까?
set transaction isolation level READ UNCOMMITTED
현재 내 저장 프로 시저 내의 모든 select 문에서 각 테이블 다음에 with (nolock)
이 지정되었습니다.READ UNCOMMITTED 격리 수준에서 SQL DB에 대해 업데이트 쿼리를 실행할 수 있습니까?
저장 프로 시저 상단에 다음 코드를 추가하면 저장 프로 시저에서 업데이트/삽입/삭제 쿼리를 실행할 수 있습니까?
set transaction isolation level READ UNCOMMITTED
네,하지만
update/insert/delete won't and can't be "dirty"은 READUNCOMMITTED와 NOLOCK을 삽입, 업데이트 또는 삭제 작업에 의해 수정 된 테이블을 지정할 수 없습니다. SQL Server 쿼리 최적화 프로그램은 UPDATE 또는 DELETE 문의 대상 테이블에 적용되는 FROM 절의 READUNCOMMITTED 및 NOLOCK 힌트를 무시합니다.
그것은이 "기능"이 SELECT들에 NOLOCK으로 어쨌든
되지 않습니다 말을 계속,이 잠금도 발행이나 관찰을 의미합니다. 같은 링크에서
없음 공유 잠금은 현재 트랜잭션에서 읽은 데이터를 수정하는 다른 트랜잭션을 방지하기 위해 발행하고, 다른 트랜잭션에 의해 설정된 배타적 잠금은 잠금 데이터를 읽는에서 현재 트랜잭션을 차단하지 않습니다.
그래서 :
는(더티 읽기) 당신은 그것을 할? 나 또는 다른 높은 rep 사용자가 여기에 반대하는 것이 좋습니다 ...
당신은 스냅 숏 격리를 고려해야한다 (이하 "권한"사이트가 잘못 주) 경우 (또는 인덱스/쿼리를 고정) 너무 많음 입증 됨 블로킹 읽기
예, 가능합니다. 격리 수준은 사용자가 업데이트/삽입/삭제할 수 없음을 의미하지 않습니다.
격리 수준은 ACID에 관한 것보다 더 높습니다. 잠긴 것은 무엇이며 은 다른 세션에 표시되는 내용입니다. 위키 피 디아에서
, Isolation (database systems) :데이터베이스 시스템에서, 분리는 하나 개의 작업에 의한 변경은 다른 동시 작업에 표시 될 때 방법/정의하는 속성입니다.