Làm cách nào để phát hiện READ_COMMITTED_SNAPSHOT được bật?


130

Trong MS SQL Server có một cách để phát hiện liệu một cơ sở dữ liệu đã được đặt mức cô lập thông qua lệnh T-SQL chưa ALTER DATABASE <database> SET READ_COMMITTED_SNAPSHOT ON;

Tôi không thể tìm thấy một cách đơn giản để phát hiện điều này trong T-SQL hoặc thông qua GUI của Management Studio.

TIA

Câu trả lời:


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

Giá trị trả về:

  • 1 : READ_COMMITTED_SNAPSHOTtùy chọn là BẬT . Hoạt động đọc dưới READ COMMITTEDmức cô lập dựa trên quét ảnh chụp nhanh và không thu được khóa.
  • 0 (mặc định): READ_COMMITTED_SNAPSHOTtùy chọn TẮT . Đọc các hoạt động dưới READ COMMITTEDmức cô lập sử dụng các khóa được chia sẻ (S) .

7
Tôi thích "DBCC USEROPTIONS", dễ nhớ hơn một chút.
ProVega

5
@ProVega - DBCC USEROPTIONS không trả về giá trị của is_read_commned_snapshot_on.
Carsten Schütte

3
  1. Theo https://msdn.microsoft.com/en-us/l Library / ms180065.aspx, "DBCC USEROPTION báo cáo mức cô lập 'đọc ảnh chụp nhanh đã cam kết' khi tùy chọn cơ sở dữ liệu READ_COMMITTED_SNAPSHOT được đặt thành BẬT và mức cô lập giao dịch là được đặt thành 'đọc cam kết'. Mức cô lập thực tế được đọc cam kết. "

  2. Ngoài ra trong SQL Server Management Studio, trong các thuộc tính cơ sở dữ liệu trong Tùy chọn-> Khác có trạng thái tùy chọn "Được đọc cam kết trên"


1

Cả SQL2005 và 2012 đều không DBCC USEROPTIONShiển thị 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
Vui lòng thử đọc stackoverflow.com/about này để hiểu thêm về câu hỏi / câu trả lời tại đây trên SO. Đóng góp của bạn không trả lời câu hỏi. Đó là một nhận xét nhiều hơn, mà bạn có thể thêm một lần bạn sẽ tăng danh tiếng của mình: stackoverflow.com/faq#reputation
Radim Köhler

1
Câu trả lời là ổn vì nó cố gắng trả lời câu hỏi "có cách nào không?". Nhưng chỉ nói những gì không hoạt động sẽ không được chấp nhận nhiều.
Christian Strempfer

4
Mức cô lập trong DBCC USEROPTIONSđó cho bạn biết. Nếu đúng read committed snapshotthì nó vẫn hoạt động, nếu không thì tắt
Greg

@Greg - đọc ảnh chụp nhanh cam kết được đặt ở cấp cơ sở dữ liệu, không phải cấp kết nối người dùng. NGƯỜI DÙNG DBCC sẽ không cho bạn biết nếu nó bật hay tắt.
JasonS
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.