트랜잭션 격리 수준(SQL Server 2008, 트랜잭션과 잠금)
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
READ UNCOMMITTED : 커밋되지 않은 데이터도 포함해서 읽기
READ COMMITTED : 커밋되기 전까지 데이터 접근 못함.
REPEATABLE READ : 공유잠금(select)이 걸려있는 상태에서는 update/delete는 불가. 하지만, insert는 가능함.
SNAPSHOT : 공유잠금 상태에서도 insert가 가능하다. 실 TABLE에 저장을 하는게 아니라 TEMPDB에 저장을 한 다음에 commit되면
데이터를 이동 시킨다.
SERIALIZABLE : REPEATABLE READ상태에서는 insert가 가능하다. insert도 불가능하게 할 때사용.
select를 수행할 때는 공유잠금(Shared LocK)이 걸림.
insert/update/delete를 수행하게 되면 배타적 잠금(Exclusive Lock)이 걸림.
트랜잭션 정보보기
select resource_type
, resource_database_id
, resource_associated_entity_id
, request_mode
from sys.dm_tran_locks
컬럼명 |
내용 |
사용법 |
resource_type | DATABASE, OBJECT, PAGE | |
resource_database_id | DB명 확인 하기 | select DB_NAME(5) |
resource_associated_entity_id | 테이블 확인하기 | select OBJECT_NAME(1713441178) |
SET LOCK_TIMEOUT 15000 --트랜잭션 블러킹 제한 시간설정
select @@lock_timeout --블러킹 유효시간
select @@TRANCOUNT --트랜잭션 수
'MS-SQL' 카테고리의 다른 글
XML (0) | 2015.07.29 |
---|---|
DATEADD -일정 수 만큼 날짜 더하기 (0) | 2015.07.29 |
팁 (0) | 2015.07.29 |
사용자 정의 함수(Function) (0) | 2015.07.29 |
유용한 쿼리 (0) | 2015.07.28 |
댓글