Domanda

In MS SQL Server esiste un modo per rilevare se un database ha il livello di isolamento impostato tramite il comando T-SQL ALTER DATABASE <database> SET READ_COMMITTED_SNAPSHOT ON;

Non riesco a trovare un modo semplice per rilevarlo in T-SQL o tramite la GUI di Management Studio.

TIA

È stato utile?

Soluzione

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

Valore di ritorno:

  • 1: READ_COMMITTED_SNAPSHOT l'opzione è SU.Leggi le operazioni sotto il READ COMMITTED il livello di isolamento si basa sulle scansioni degli snapshot e non acquisisce blocchi.
  • 0 (predefinito): READ_COMMITTED_SNAPSHOT l'opzione è SPENTO.Leggi le operazioni sotto il READ COMMITTED utilizzo del livello di isolamento Lucchetti condivisi (S)..

Altri suggerimenti

  1. Come da https://msdn.microsoft.com/en-us/library/ms180065.aspx, "DBCC UserOptions riporta un livello di isolamento di" lettura Snapshot impegnata "quando l'opzione del database read_Committed_SnapShot è impostato su ON e il livello di isolamento delle transazioni è impostato su" Lettura impegnata ".Il livello di isolamento effettivo viene letto con commit."

  2. Anche in SQL Server Management Studio, nelle proprietà del database in Opzioni->Varie è presente lo stato dell'opzione "Istantanea con commit di lettura attiva"

Né su SQL2005 né sul 2012 lo fanno DBCC USEROPTIONS spettacolo 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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top