DB

WITH (NOLOCK)

91cm 2018. 9. 14. 00:16


WITH (NOLOCK)공유잠금을 걸지 않고 바로 조회



*사용이유?

MSSQL의 기본 격리 수준(isolation level)은 read committed 임

SELECT시 수행시 같은 테이블에서 INSERT,  DELETE, UPDATE가 되고 있으면 SELECT는 LOCK이 걸린다. 

WITH (NOLOCK)을 사용하면 선행작업의 결과와 관계 없이 SELECT문이 실행된다



*예제

  쿼리 

   SELECT * FROM 테이블 WITH (NOLOCK)

  

  프로시저

   CREATE PROCEDURE 프로시저명


   AS

    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

    SET NOCOUNT ON;

  

  BEGIN

     ~~~~

 

  END  




그러나 쓰지 말아야 할 경우가 있음 , 정말로! 중요하게 실시간으로 데이터를 볼땐는 쓰지 말아야 할 것이다.

(돈과 관련된? 근대 대부분은 없을 듯)