MSSQL
[MSSQL] 입력, 수정,삭제 중인 테이블 잠금 없이 읽기
csmkong
2020. 7. 13. 10:03
MSSQL에서 특정 테이블에 값을 INSERT, UPDATE, DELETE 중에 트랜잭션이 COMMIT 되기 전에
해당 데이터를 SELECT 하게 되면 잠금일 발생하여 SELECT 전에 발생한 트랜잭션이 COMMIT 되기를 기다린다.
이때, 기다림 없이 바로 조회하고 싶다면, SELECT 문의 테이블 뒤에 WITH (NOLOCK) 을 추가해주면 된다.
프로시저 작성 시 사용하는 전체 테이블에 WITH (NOLOCK) 처리를 하고 싶은 경우,
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
프로시저 상단에 아래 한줄의 코드를 추가해두면, 각 테이블 뒤에 일일이 WITH (NOLOCK) 을 작성하지 않아도
전체 테이블에 WITH (NOLOCK) 처리한 것과 같은 효과를 낸다.