Comment détecter READ_COMMITTED_SNAPSHOT est activé?


130

Dans MS SQL Server, existe-t-il un moyen de détecter si une base de données a son niveau d'isolement défini via la commande T-SQL ALTER DATABASE <database> SET READ_COMMITTED_SNAPSHOT ON;

Je ne trouve pas de moyen simple de détecter cela dans T-SQL ou via l'interface graphique de Management Studio.

TIA

Réponses:


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

Valeur de retour:

  • 1 : l' READ_COMMITTED_SNAPSHOToption est activée . Les opérations de lecture sous le READ COMMITTEDniveau d'isolement sont basées sur des analyses de cliché et n'acquièrent pas de verrous.
  • 0 (par défaut): l' READ_COMMITTED_SNAPSHOToption est désactivée . Les opérations de lecture sous le READ COMMITTEDniveau d'isolement utilisent des verrous Shared (S) .

7
J'aime "DBCC USEROPTIONS", un peu plus facile à retenir.
ProVega

5
@ProVega - DBCC USEROPTIONS ne renvoie pas la valeur de is_read_committed_snapshot_on.
Carsten Schütte

3
  1. Selon https://msdn.microsoft.com/en-us/library/ms180065.aspx , «DBCC USEROPTIONS signale un niveau d'isolement de« lecture validée instantané »lorsque l'option de base de données READ_COMMITTED_SNAPSHOT est définie sur ON et que le niveau d'isolation de transaction est défini sur "lecture validée". Le niveau d'isolement réel est lecture validée. "

  2. Également dans SQL Server Management Studio, dans les propriétés de la base de données sous Options-> Divers, il y a l'état de l'option "Est-ce que l'instantané validé est lu"


1

Ni sur SQL2005 ni 2012 ne DBCC USEROPTIONSmontrent 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
Veuillez essayer de lire ce stackoverflow.com/about , pour mieux comprendre les questions / réponses ici sur SO. Votre contribution ne répond pas à la question. C'est plus un commentaire, que vous pouvez ajouter une fois que vous augmenterez votre réputation: stackoverflow.com/faq#reputation
Radim Köhler

1
La réponse est correcte car elle tente de répondre à la question "y a-t-il un moyen?". Mais dire seulement ce qui ne fonctionne pas ne sera pas beaucoup accepté.
Christian Strempfer

4
Le niveau d'isolement DBCC USEROPTIONSvous le dit. Si c'est read committed snapshotalors c'est allumé, sinon c'est éteint
Greg

@Greg - l'instantané validé en lecture est défini au niveau de la base de données, pas au niveau de la connexion utilisateur. DBCC USEROPTIONS ne vous dira pas s'il est activé ou désactivé.
JasonS
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.