none
MS SQL LOCK관련 문의드립니다. RRS feed

  • 질문

  • SQL Server 기본격리수준은 read committee이고

    기본격리수준인 경우 데이터를 읽을 때 공유잠금이 유지가 되어서

    데이터 조회 중인 경우 같은 테이블의 데이터 수정이나 추가가 발생한 경우 기존 데이터 조회 작업이 완료될때까지

    데이터 수정이나 추가처리는 block처리 되고 데이터 수정이나 추가 중인 경우 같은 테이블의 데이터 조회가 발생한 경우

    데이터 수정이나 추가작업이 완료될때까지 데이터 조회처리는 block처리가 되는지 확인 부탁드립니다.

    아래의 처리방안도 확인 부탁드립니다.

    예시 1) with (nolock)적용

              SELECT A,B,C, FROM [테이블이름] WITH (NOLOCK)

    예시 2) SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED  적용

               CREATE PROC [저장프로시저이름]

              AS

               SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

              BEGIN

                         SELECT A,B,C FROM  [테이블이름]

             END

    예시 3)  SNAPSHOT 격리 수준 사용 (Shared-Lock)이 없는 것과 같은 효과

             ALTER DATABASE [데이터베이스이름] SET ALLOW_SNAPSHOT_ISOLATION ON;

      

    2018년 2월 9일 금요일 오전 8:44