1. 트랜잭션과 테이블 잠금(Lock) 잠금에 대한 전반적인 내용은 MSDN의 잠금 및 행 버전 관리 페이지로부터 찾아볼 수 있다. 트랜잭션 중일 때 테이블 잠금(Lock)이 발생한다. 잠금(Lock)은 사용자가 데이터를 사용하고 있으면 다른 사용자가 그 데이터를 변형하지 못하도록 한다. 따라서, 테이블이 잠기면 이 잠금이 풀릴 때까지 다른 쿼리 수행은 잠금이 풀릴 때까지 대기하게 된다. 아래 예제를 살펴보자. -- 트랜잭션이 시작되어 잠금(Lock)이 발생했다 BEGIN TRAN UPDATE UserTable SET Addr = N'서울' WHERE ID = 'KHD' UPDATE UserTable SET Addr = N'경기' WHERE ID = 'KKJ' UPDATE UserTable SET Add..
트랜잭션
Transact-SQL / SP 등의 실행으로 데이터베이스가 lock 상태에 있을 때, sysprocesses 테이블을 통해 해당 잠금 상태에 대한 정보를 조회 (SID, 대기시간, 상태 등) USE [master] GO /****** Object: StoredProcedure [dbo].[sp_mon_blocking] Script Date: 2023-06-07 오후 12:55:33 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO create proc [dbo].[sp_mon_blocking] as set nocount on --기초 테이블 생성 create table #a(blocking_spid int,blocking_hostprocess int ..