[MS-SQL]WITH(NOLOCK)이란, 사용법
2023. 11. 10. 17:33ㆍSQL/MSSQL
MSSQL의 기본 격리 수준(Isolation Level)은 Read Committed이다.
그로 인해 SELECT 시 공유장금(S Lock)이 걸리게 되는데
이는 DML(INSERT, UPDATE, DELETE) 작업 중인 ROW 또는 TABLE에 SELECT를 할 경우 작업이 모두 끝나고
SELECT가 진행된다.
이럴 경우 DB의 성능이 떨어지고, 데드락(Deadlock)이 발생할 수 있다.
이를 방지하기 위해 사용하는 것이 WITH(NOLOCK)이다.
WITH(NOLOCK)의 격리수준(Isolation Level)은 Read Uncommitted와 같다.
다른 작업 중에도 SELECT 가 실행되면 조회를 진행한다.
주의할 점이 있다면 Committed되지 않은 데이터를 읽어오기 때문에
트랜잭션이 Rollback 될 경우, 잘못된 데이터를 읽어 올 수 있다.
이럴 경우 정합성이 떨어지기 때문에 정확성이 필요한 경우에는 사용하지 않는 게 좋다.
사용방법은
아래와 같이 테이블명 뒤에 추가해 주면 된다.
SELECT * FROM tbl_product1 WITH(NOLOCK)
'SQL > MSSQL' 카테고리의 다른 글
[MS-SQL] 데이터 타입 변환하기(CONVERT, CAST) (2) | 2023.12.06 |
---|