none
mssql nolock vs with (nolock) 사용관련 문의 RRS feed

  • 질문

  • 안녕하세요. 다름이 아니라 쿼리를 확인하다보니

    SELECT문애서 아래와 같은 쿼리를 혼재하고 사용하고 있는 것을 발견 하였습니다.

    SELECT 블라블라~ 컬럼

    FROM A WITH (NOLOCK)


    SELECT 블라블라~ 컬럼

    FROM A (NOLOCK)


    WITH구문이 있냐 없냐의 차이인데요. MSDN공식 문서를 찾아봤을때 WITH 구문 없이 사용하지 말라고 권고 하고 있는데.. stackoverflow를 통해 찾아보면 기능상의 차이는 없다라고 표현하고 있고 약간 혼란 스러운데요. 혹시 ms에서 권고한대로 사용하는게 성능상의 이득이 맞을지 궁금합니다.

    관련 URL :https://stackoverflow.com/questions/12112855/withnolock-or-nolock-is-there-a-difference

    MSDN공식 문서 : https://docs.microsoft.com/ko-kr/sql/t-sql/queries/hints-transact-sql-table?view=sql-server-2017 

    2019년 2월 22일 금요일 오전 12:38

답변

  • TABLE HINT 사용 시 구버전에선 WITH 구문 없이 그냥 (NOLOCK) 형태로 해도 동작했는데

    신 버전에선 WITH (NOLOCK) 이런식으로 써야 동작하니 만약 기존 Application 이 WITH를 생략한 상태면 기입하라는 겁니다.

    성능상의 이득이 아닌 기능변경에 의해 호환이 되지 않기에 변경하라는 것입니다

    • 답변으로 표시됨 초보 개발자 2019년 4월 30일 화요일 오후 1:58
    2019년 3월 6일 수요일 오전 4:10