MS-SQL 은 기본적인 LOCK 정책이 READ COMMITTED 인 것으로 알고 있습니다.
이것을 READ UNCOMMITTED 로 변경하려고 하는데요.
왜냐하면 사용하는 QUERY 문에 WITH (NOLOCK) 문장을 기입을 원하지 않아서 입니다.
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
명령을 수행하면 현재 연결된 세션만 변경이 되는 것으로 알고 있습니다.
DATABASE 의 기본적인 LOCK 정책을 READ UNCOMMITTED 로 변경하려고 하면
어떻게 처리를 해야 하는지 자세하게 알려 주시면 감사하겠습니다.
Comment 2
-
무념
2013.04.29 17:09
-
한태
2016.02.18 20:02
SQL Server에서 격리수준을 DB나 Server 레벨로 변경하는 방법은 없습니다.
SQL Server DB레벨에서 작성자님이 원하는 조건에 가장 부합하는 방법은
ALLOW_SNAPSHOT_ISOLATION or READ_COMMITTED_SNAPSHOT 을 설정하는 것입니다.
ALTER DATABASE MyDatabase SET ALLOW_SNAPSHOT_ISOLATION ON
ALTER DATABASE MyDatabase SET READ_COMMITTED_SNAPSHOT ON
RDBMS말고 NOSQL을 쓰세요.
RDBMS의 기본 룰인 참조무결성을 위배하는 행위인 것 같습니다.
READ COMMITTED SNAPSHOT : 2005 이상부터 지원하는 제한적 격리 수준입니다.
READ_COMMITTED_SHAPSHOT 을 ON 또는 OFF로 설정하려면 ALTER DATABASE 명령을 실행하는 연결을 제외하고 데이터베이스에 대한 활성 상태의 연결이 없어야 합니다.
이걸로 하시면 될 것도 같네요.