MSSQL은 기본적으로 SELECT 시에 공유잠금이 걸린다.

즉, SELECT 문이 수행되는 테이블에 대해서 INSERT,UPDATE,DELETE 문이 수행되고 있다면

SELECT 문은 선행작업이 모두 끝날 때까지 LOCK이 걸린다. 

이때 SELECT문에 WITH(NOLOCK)을 추가하면 선행작업의 결과와 관계없이 바로 

SELECT문이 수행되어서 결과를 반환하게 된다.

SELECT * FROM TABLE WITH(NOLOCK)

 

* 프로시저 내에서 사용되는 SELECT문에서 WITH(NOLOCK)을 사용하기 위해서는 각 문장마다 삽입할 필요없이 

프로시저 시작부분에 

SET TRANSACTION ISOLATION LEVEL READ UNCOMMTTED

'[DB] > [MSSQL]' 카테고리의 다른 글

# [MSSQL] LOCK 걸린 쿼리 확인 후 강제 KILL  (0) 2020.04.17
# 저장 프로시저  (0) 2020.04.07
# 트랜잭션  (0) 2020.04.07
@@ROWCOUNT  (0) 2020.03.26
테이블 복사 및 데이터 복사  (0) 2020.03.26

+ Recent posts