관리 메뉴

why don't do your best

블럭킹 상태 체크 프로시져 본문

Database/MSSQL

블럭킹 상태 체크 프로시져

빅셔 2011. 9. 15. 11:09

대림 출판사 SQL2000 책 에서 발췌

작성 사이버테크 윤범식 연구원


SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROC [dbo].[sp_block]
AS

IF EXISTS (select * from sysprocesses where spid IN
         (select blocked from sysprocesses))
select spid,
     blocked,
     status,
     loginame,
     hostname,
     dbname = substring(db_name(dbid), 1, 10)
                    ,cmd
  from sysprocesses
where blocked <> 0                   
           or (spid IN (select blocked from sysprocesses))
ELSE
     print 'No one is blocked'    

실행

exe sp_block

결과

 

spid 59번에서는

 

begin tran

update 테이블

set 거시기는 = 거시기

--커밋하지 않은 상태

 

spid 60번에서는

select * from 테이블

 

spid 61번에서는 아래와 같이 sp_block을 실행한 상태

image

 

두번째 줄 60번 은 59번에 의해서 블럭킹 되어있는 내역을 보실 수 있습니다.

Comments