데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
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 명령을 실행하는 연결을 제외하고 데이터베이스에 대한 활성 상태의 연결이 없어야 합니다.
이걸로 하시면 될 것도 같네요.