sp_lock 락 > db

본문 바로가기

db

sp_lock 락

페이지 정보

작성자 서방님 댓글 0건 조회 12회 작성일 07-11-10 20:39

본문

1. 정의

행이나 열의 접근을 막는 것

2. 락의 확인법

sp_lock               전체 락 확인 

sp_lock @@spid   자신의 세션의 lock만 확인

 열 이름 테이터 형식 설명 
 spid  smallint SQL Server 프로세스 ID
 dbid  smallint  잠금을 요청하는 디비 ID
 Objid  int  잠금을 요청하는 개체의 ID
 Indld  smallint  인덱스 ID번호
 Type  nchar(4)

 잠금 유형

DB = 데이터 베이스

FIL = 파일

IDX = 인덱스

PG = 페이지

KEY = 키

TAB = 테이블

EXT = 익스텐트

RID = 행 식별자

 Resource  nchar(16)

syslockinfo.restext의 값에 대항되는 잠금 리소스

 Mode  NVARCHAR(8)  잠금 요청자의 잠금 모드
 Status  INT  잠금 요청 상태

모드 S(shared) 테이블이 Select문을 통해 Table 사용 중 Fetch단계에서 테이블이 변경되면 안되므로 DDL문이 실행 못 하도록 락을 걸어 주는 것.

       X(eXclusive) update나 delete 시 commit이나 rollback을 하기 전에 그 row를 락거는것

 

상태 GRANT(잠금 허용)

       WAIT(다른 프로세스에서 차단되는 중)

       CVNT(다른 잠금으로 변환되는 중)

 

명시적 트랜젝션에서 update를 할때 index가 있는 컬럼이 where절에 있으면 그 행만 락을

걸어서 다른 행을 사용 가능한 상태로 만든다. 하지만 index가 없는 컬럼을 조건으로 잡으면

인덱스가 있는 컬럼만 보이지 다른 것들은 전혀 안보인다.
그러므로 update할때 where절에 index가 있는 컬럼으로 무조건 update해야 한다.

댓글목록

등록된 댓글이 없습니다.

Total 447건 1 페이지
게시물 검색

회원로그인

접속자집계

오늘
299
어제
446
최대
592
전체
38,817

그누보드5
Copyright © seobangnim.com All rights reserved.
자바스크립트를 활성화 하세요![ 브라우저에서 자바스크립트를 활성화하는 방법 ]