Question

Dans MS SQL Server, existe-t-il un moyen de détecter si le niveau d'isolement d'une base de données a été 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.

AIT

Était-ce utile?

La solution

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

Valeur de retour :

  • 1: READ_COMMITTED_SNAPSHOT l'option est SUR.Lire les opérations sous le READ COMMITTED Le niveau d'isolement est basé sur des analyses d'instantanés et n'acquiert pas de verrous.
  • 0 (défaut): READ_COMMITTED_SNAPSHOT l'option est DÉSACTIVÉ.Lire les opérations sous le READ COMMITTED utilisation au niveau d'isolement Verrous partagés (S).

Autres conseils

  1. Selon https://msdn.microsoft.com/en-us/library/ms180065.aspx, "DBCC UserOptions rapporte un niveau d'isolement de" Read Commited Snapshot "lorsque l'option de base de données Read_Committed_Snapshot est définie sur ON et le niveau d'isolement des transactions est défini sur` `Lire engagée ''.Le niveau d'isolement réel est lu comme validé."

  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 « L'instantané lu est-il validé ? »

Ni sur SQL2005 ni sur 2012 DBCC USEROPTIONS montrer 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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top