READ_COMMITTED_SNAPSHOT가 활성화되어 있는지 감지하는 방법은 무엇입니까?


130

MS SQL Server에는 데이터베이스가 T-SQL 명령을 통해 격리 수준을 설정했는지 여부를 감지하는 방법이 있습니다 ALTER DATABASE <database> SET READ_COMMITTED_SNAPSHOT ON;

T-SQL 또는 Management Studio의 GUI를 통해이를 감지하는 간단한 방법을 찾을 수 없습니다.

티아

답변:


194
SELECT is_read_committed_snapshot_on FROM sys.databases 
WHERE name= 'YourDatabase'

반환 값 :

  • 1 : READ_COMMITTED_SNAPSHOT옵션이 ON 입니다. READ COMMITTED격리 수준의 읽기 작업 은 스냅 샷 검색을 기반으로하며 잠금을 획득하지 않습니다.
  • 0 (기본값) : READ_COMMITTED_SNAPSHOT옵션이 OFF 입니다. READ COMMITTED격리 수준의 읽기 작업은 공유 (S) 잠금을 사용 합니다.

7
나는 기억하기 쉬운 "DBCC USEROPTIONS"를 좋아한다.
ProVega

5
@ProVega-DBCC USEROPTIONS는 is_read_committed_snapshot_on의 값을 반환하지 않습니다.
Carsten Schütte

3
  1. 당으로 https://msdn.microsoft.com/en-us/library/ms180065.aspx , "DBCC USEROPTIONS 데이터베이스 옵션 READ_COMMITTED_SNAPSHOT이 ON으로 설정하고 트랜잭션 격리 수준이 될 때의 격리 수준이 '최선을 다하고 스냅 샷을 읽어'보고 "읽기 커밋"으로 설정했습니다. 실제 격리 수준은 읽기 커밋됩니다. "

  2. 또한 SQL Server Management Studio의 옵션-> 기타에있는 데이터베이스 속성에서 "읽기 커밋 된 스냅 샷을 읽었습니다"옵션 상태가 있습니다.


1

SQL2005 또는 2012에서는 다음과 같이 DBCC USEROPTIONS표시 되지 않습니다 is_read_committed_snapshot_on.

Set Option  Value
textsize    2147483647
language    us_english
dateformat  mdy
datefirst   7
lock_timeout    -1
quoted_identifier   SET
arithabort  SET
ansi_null_dflt_on   SET
ansi_warnings   SET
ansi_padding    SET
ansi_nulls  SET
concat_null_yields_null SET
isolation level read committed

6
SO에 대한 질문 / 응답에 대한 자세한 내용을 보려면 이 stackoverflow.com/about 을 읽으십시오 . 귀하의 기여가 질문에 대한 답변이 아닙니다. 평판이 높아지면 추가 할 수있는 주석입니다. stackoverflow.com/faq#reputation
Radim Köhler

1
"방법이 있습니까?"라는 질문에 대한 답변을 시도 할 때 대답은 괜찮습니다. 그러나 작동하지 않는 것을 말하는 것만으로는 받아 들일 수 없습니다.
Christian Strempfer

4
의 격리 수준 DBCC USEROPTIONS이 알려줍니다. read committed snapshot켜져 있으면 켜져 있고 그렇지 않으면 꺼져 있습니다
Greg

@Greg-커밋 된 읽기 스냅 샷이 사용자 연결 수준이 아닌 데이터베이스 수준에서 설정됩니다. DBCC 사용자 옵션이 켜져 있는지 여부를 알려주지 않습니다.
JasonS
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.