-- 단일 모드(현재 작업들 모두 즉시 롤백)

ALTER DATABASE AdventureWorks2008R2

SET SINGLE_USER

WITH ROLLBACK IMMEDIATE

GO

 

-- 멀티(일반) 모두

ALTER DATABASE AdventureWorks2008R2

SET MULTI_USER

GO

 

'SQL' 카테고리의 다른 글

SQL 서버를 활용한 성능 카운터 수집  (0) 2012.04.20
SQL Server 2005 이후 로그 공간 확인  (0) 2012.03.12
SQL Server 보안(권한) 관련 정리된 글  (0) 2011.11.24
트랜잭션 정리  (0) 2011.11.23
SQL Server Stress Test  (0) 2011.10.31

'SQL' 카테고리의 다른 글

SQL Server 2005 이후 로그 공간 확인  (0) 2012.03.12
SQL 단일모드  (0) 2012.03.12
트랜잭션 정리  (0) 2011.11.23
SQL Server Stress Test  (0) 2011.10.31
분산쿼리에 대해...  (0) 2010.10.28
  1. Read Uncommitted
    1. 특징
      • Nolock 힌트와 동일
      • Select 구문의 이슈이다.
      • Dirty Read - 다른 Transaction에서 변경이 되었지만 아직 Commit 명령이 아직 수행되지 않은 변경된 데이터(Dirty)를 읽어올 수 있음( 수정불가).
    2. 업무 시나리오
      • Select구문에 대한 후속 작업에서 변경을 가하지 않는 로직에 적용
      • Transaction이 빈번한 테이블에서 빠른 조회가 요구될 때
      • 동시성에 대한 요구가 없는 작업에서

 

  1. Read Committed
    1. 특징
      • 힌트가 없는 일반 문장
      • 디폴트 격리수준
      • Select 이슈.
      • 다른 Transaction에서 변경 중인 데이터는 읽어 올 수가 없음 
        (
        다른 Transaciton에서 Commit 또는 Rollback 명령이 떨어지지 않는 한 실행된 Select구문은 대기 상태로 들어가게 됨).
    2. 업무 시나리오
      • 대부분의 일반 업무 시나리오.

                                                             

  1. Repeatable Read
    1. 특징
      • UPDLOCK힌트와 동일
      • 자신의 Transaction Select이슈, 다른 Transaction Update 이슈
      • 한 트랜잭션내에서 수행하는 select문은 항상 동일한 값을 반환함공유잠금유지)
      • , 자신의 Transaction하에서 Select된 로우에 대해 다른 Transaction이 읽어갈 수는 있지만 수정할 수 없음.
      • 다른 Transaction이 같은 테이블의 다른 로우에 대한 변경, 추가, 삭제는 가능
      • select * , 조건절 Select이나 테이블 스캔, 인덱스 스캔인 경우는 해당 테이블에 변경, 삭제가 불가능 하나 추가는 가능
    2. 업무 시나리오
      • 같은 로우에 대한 동시 업데이트가 문제시 되는 업무 시나리오
      • 같은 로우에 대한 Transaction이 빈번한 경우 Select구문에 대한 중요 정책이 필요할 때
      • 예약, 발권 등의 같은 로우에 대한 동시 접근 시나리오.
    3. * Read Uncommitted와의 차이점은?

 

  1. Serializable
    1. 특징
      • HOLDLOCK힌트와 동일하다.
      • Repeatable Read 특징을 모두 포함.
      • 조건 조회의 경우는 Repeatable Read와 동일 
        (
        해당 로우에 대해 다른 Transaction이 변경,삭제를 할 수 없음)
      • Select *, 조건조회이나 테이블 스캔, 인덱스 스캔의 경우 다른 Transaction에서 해당 테이블에 대해 변경, 삭제, 추가를 할 수 없음.
    2. 업무 시나리오
      • Transaction에서 발생된 Select구문의 데이터에 대한 완벽한 정확성을 반영하고자 할 때
      • 대량의 데이터를 특정 로직으로 변경을 가하는 Import, Export, Bulk Copy 등의 배치 작업에서 데이터의 동시성이 중요시 되는 경우에 사용
      • 해당 테이블에 동시 Transaction 수가 적을 때
      • Transaction이 빈번한 대규모 시스템에서는 성능에 치명적인 영향을 미치므로 주의해서 사용

 

출처 : http://dalbong2.net/trackback/214

'SQL' 카테고리의 다른 글

SQL 단일모드  (0) 2012.03.12
SQL Server 보안(권한) 관련 정리된 글  (0) 2011.11.24
SQL Server Stress Test  (0) 2011.10.31
분산쿼리에 대해...  (0) 2010.10.28
확장 저장 프로시저 내리기  (0) 2010.04.28

+ Recent posts