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

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) .

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"


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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.