Como detectar READ_COMMITTED_SNAPSHOT está ativado?

130

No MS SQL Server, existe uma maneira de detectar se um banco de dados teve seu nível de isolamento definido por meio do comando T-SQL ALTER DATABASE <database> SET READ_COMMITTED_SNAPSHOT ON;

Não consigo encontrar uma maneira simples de detectar isso no T-SQL ou na GUI do Management Studio.

TIA

Chris Driver
fonte

Respostas:

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

Valor de retorno:

  • 1 : a READ_COMMITTED_SNAPSHOTopção está ativada . As operações de leitura no READ COMMITTEDnível de isolamento são baseadas em varreduras de captura instantânea e não adquirem bloqueios.
  • 0 (padrão): a READ_COMMITTED_SNAPSHOTopção está desativada . As operações de leitura no READ COMMITTEDnível de isolamento usam bloqueios compartilhados (S) .
Galego
fonte
7
Eu gosto de "DBCC USEROPTIONS", um pouco mais fácil de lembrar.
ProVega 29/10
5
@ProVega - DBCC USEROPTIONS não retorna o valor de is_read_committed_snapshot_on.
Carsten Schütte
3
  1. Conforme https://msdn.microsoft.com/en-us/library/ms180065.aspx , "DBCC USEROPTIONS relata um nível de isolamento de 'leitura instantânea confirmada de leitura' quando a opção de banco de dados READ_COMMITTED_SNAPSHOT está definida como ON e o nível de isolamento de transação é definido como 'leitura confirmada'. O nível de isolamento real é leitura confirmada ".

  2. Também no SQL Server Management Studio, nas propriedades do banco de dados, em Opções-> Diversos, existe o status da opção "Está com leitura instantânea confirmada"

MikeL
fonte
1

Nem no SQL2005 nem em 2012 DBCC USEROPTIONSmostra 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
user3164106
fonte
6
Por favor, tente ler este stackoverflow.com/about , para obter mais entendimento sobre perguntas / respostas aqui no SO. Sua contribuição não está respondendo à pergunta. É mais um comentário, que você pode adicionar quando aumentar sua reputação: stackoverflow.com/faq#reputation
Radim Köhler
1
A resposta é boa, pois tenta responder à pergunta "existe uma maneira?". Mas apenas dizer o que não está funcionando não terá muita aceitação.
Christian Strempfer
4
O nível de isolamento em DBCC USEROPTIONSindica. Se estiver read committed snapshotligado, caso contrário, está desligado.
Greg
@Greg - a captura instantânea confirmada de leitura é definida no nível do banco de dados, não no nível da conexão do usuário. As USEROPTIONS do DBCC não informam se está ativado ou desativado.
jasons