안녕하세요,

SQL 에 관련해 궁금한 사항이 있어서 질문 드립니다.

아시는 분은 꼭 답변 해주시면 감사하겠습니다.


제가 알기로는 Update, Insert 중 같은 테이블을 Select 시도하면 Lock 이 걸린다고 알고있습니다.

실제로 Begin Tran Update ~ 로 Commit 전의 상태에서

Select 문을 사용했을 때 Lock 이 걸려 Timeout 에러가 발생하는 것 까지 확인하였습니다.

그래서 이 때 Lock 없이 데이터를 보기 위해서는 Select 문에 WITH(NOLOCK) 을 사용하면 되고,

이 또한 테스트로 확인했습니다. ( NOLOCK 사용 시 Update 중에도 Select 되는 것)


그런데 테스트 중 Join 으로 Select 한 테이블은 Lock 이 발생하지 않고 Select 결과가 나타났습니다.

좀 더 자세하게 상황을 설명하면,

A, B : Table

Update A 중

Select From A INNER JOIN B ON A.type = B.type WHERE A.type = 'TEMP'

의 결과가 WITH(NOLOCK) 없이 바로 나왔습니다.


왜 이 경우에는 트랜잭션이 걸리지 않을까요?

위 상황에서 DBCC OPENTRAN 으로 확인했을 때 Update A 로 열린 트랜잭션이 여전히 있었는데 말입니다.


제 생각으로는 Join 도 역시 테이블들을 조회해 join 후 가상의 테이블로 보여주기때문에

테이블 조회하는 과정에서 Lock 이 걸려야 한다고 생각했습니다.


제가 무엇을 놓치고 있는지 알려주시면 감사하겠습니다.


No. Subject Author Date Views
Notice 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 2148
10629 응용프로그램과 SQL Management 에서의 쿼리 실행 차이 [2] 울어욥 2020.08.20 469
10628 각 컬럼 별 중복된 컬럼 카운트 하는 쿼리를 어떻게 짜야할까요? 두루미 2020.08.14 408
10627 갑작스런 Timeout 에러 관련해 질문드립니다. [1] 울어욥 2020.08.05 564
» Lock, 트랜잭션에 관련하여 질문이 있습니다. [2] 울어욥 2020.08.05 681
10625 bcp 로 생성된 파일을 복원하기 질문입니다. [1] 희망나라 2020.07.26 527
10624 학생별 연속된 년도,학기의 수를 구하고 싶습니다.. [2] 개발자혁이 2020.07.22 723
10623 쿼리 결과를 서버로 올릴때 질문입니다. [2] 희망나라 2020.07.20 496
10622 차등 백업이 풀백업 이후 한번만 진행되는 현상 [1] 레몽 2020.07.20 526
10621 CONVERT 함수 문의드립니다. [5] 초보SQL러 2020.07.20 483
10620 테이블에서 여러가지 조건 검색 질문 좀 할게요 [3] 엘리사 2020.07.17 495
10619 저기요...sql비교연산자에서요.... ☞☜ [1] 김포천재 2020.07.16 500
10618 테이블상 동일한 여러개의 로우에 조건을 검색하여 데이터를 찾을수있을까요? [1] 뽀구 2020.07.15 388
10617 중복시간을 제외한 시간의 합을 구할수있을까요? [7] 톰슨 2020.07.14 764
10616 SQL 서버 연결 [1] 망태기군 2020.07.13 886
10615 SQL 특정 시간 날짜 Sum 문의 입니다. [1] 핸젤루 2020.07.07 653
10614 쿼리 질문합니다... 병든토끼 2020.07.07 357
10613 db 백업? 이중화? 질문 [2] 하이욧 2020.07.06 485
10612 인덱스를 위한 교재 추천 부탁 드립니다. [2] 대두개발자 2020.06.29 616
10611 2개의 테이블을 union all 로 조회 후 합치고 싶습니다. [2] 초보SQL러 2020.06.25 467
10610 사용자 이(가) 로그인하지 못했습니다. 원인: 명시적으로 지정된 데이터베이스를 열지 못했습니다. 마징고 2020.06.24 499





XE Login