Bagaimana cara mendeteksi READ_COMMITTED_SNAPSHOT diaktifkan?

130

Dalam MS SQL Server ada cara untuk mendeteksi apakah database telah memiliki tingkat isolasi yang ditetapkan melalui perintah T-SQL ALTER DATABASE <database> SET READ_COMMITTED_SNAPSHOT ON;

Saya tidak dapat menemukan cara sederhana untuk mendeteksi ini di T-SQL atau melalui GUI Management Studio.

TIA

Chris Driver
sumber

Jawaban:

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

Nilai pengembalian:

  • 1 : READ_COMMITTED_SNAPSHOTopsi AKTIF . Operasi baca di bawah READ COMMITTEDtingkat isolasi didasarkan pada pemindaian foto dan tidak memperoleh kunci.
  • 0 (standar): READ_COMMITTED_SNAPSHOTopsi MATI . Baca operasi di bawah READ COMMITTEDlevel isolasi menggunakan kunci Shared (S) .
Orang belanda
sumber
7
Saya suka "PENGGUNA DBCC", sedikit lebih mudah diingat.
ProVega
5
@ProVega - PENGGUNA DBCC tidak mengembalikan nilai is_read_committed_snapshot_on.
Carsten Schütte
3
  1. Sesuai https://msdn.microsoft.com/en-us/library/ms180065.aspx , "DBCC USEROPTIONS melaporkan tingkat isolasi 'read commit snapshot' ketika opsi basis data READ_COMMITTED_SNAPSHOT disetel ke ON dan tingkat isolasi transaksi diaktifkan atur ke 'read berkomitmen'. Level isolasi aktual dibaca berkomitmen. "

  2. Juga di SQL Server Management Studio, dalam properti database di bawah Options-> Miscellaneous ada status opsi "Is Read Committed Snapshot On"

MikeL
sumber
1

Baik pada SQL2005 maupun 2012 tidak DBCC USEROPTIONSmenunjukkan 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
pengguna3164106
sumber
6
Silakan, coba baca stackoverflow.com/about ini , untuk mendapatkan lebih banyak pemahaman tentang pertanyaan / jawaban di sini di SO. Kontribusi Anda tidak menjawab pertanyaan. Ini lebih merupakan komentar, yang dapat Anda tambahkan setelah Anda meningkatkan reputasi Anda: stackoverflow.com/faq#reputation
Radim Köhler
1
Jawabannya oke karena ia mencoba menjawab pertanyaan "adakah jalan?". Tetapi hanya mengatakan apa yang tidak berhasil tidak akan banyak diterima.
Christian Strempfer
4
Level Isolasi di DBCC USEROPTIONStidak memberitahu Anda. Jika sudah read committed snapshotaktif, jika tidak aktif
Greg
@Greg - bidikan snapshot berkomitmen diatur pada level basis data, bukan level koneksi pengguna. PENGGUNA DBCC tidak akan memberi tahu Anda apakah itu hidup atau mati.
JasonS