วิธีการตรวจจับ READ_COMMITTED_SNAPSHOT ถูกเปิดใช้งาน?


130

ใน MS SQL Server มีวิธีตรวจสอบว่าฐานข้อมูลมีการตั้งค่าระดับการแยกผ่านคำสั่ง T-SQL หรือไม่ ALTER DATABASE <database> SET READ_COMMITTED_SNAPSHOT ON;

ฉันไม่พบวิธีง่ายๆในการตรวจจับสิ่งนี้ทั้งใน T-SQL หรือผ่าน GUI ของ Management Studio

TIA

คำตอบ:


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

ผลตอบแทน:

  • 1 : READ_COMMITTED_SNAPSHOTตัวเลือกเปิดอยู่ การดำเนินการอ่านภายใต้READ COMMITTEDระดับการแยกจะขึ้นอยู่กับการสแกนสแน็ปช็อตและไม่ได้รับการล็อก
  • 0 (ค่าเริ่มต้น): READ_COMMITTED_SNAPSHOTตัวเลือกปิดอยู่ อ่านการดำเนินงานภายใต้READ COMMITTEDการใช้งานระดับแยกที่ใช้ร่วมกัน (S) ล็อค

7
ฉันชอบ "DBCC USEROPTIONS" จำง่ายกว่านิดหน่อย
ProVega

5
@ProVega - DBCC USEROPTIONS ไม่ส่งคืนค่าของ is_read_committed_snapshot_on
Carsten Schütte

3
  1. ตามhttps://msdn.microsoft.com/en-us/library/ms180065.aspx "DBCC USEROPTIONS รายงานระดับการแยกของ 'อ่านสแนปชอตที่มุ่งมั่น' เมื่อตัวเลือกฐานข้อมูล READ_COMMITTED_SNAPSHOT ถูกตั้งค่าเป็นเปิดและระดับการแยกธุรกรรมคือ ตั้งค่าเป็น 'อ่านคอมมิต' ระดับการแยกที่แท้จริงจะถูกอ่านโดยคอมมิต "

  2. นอกจากนี้ใน SQL Server Management Studio ในคุณสมบัติฐานข้อมูลภายใต้ตัวเลือก -> เบ็ดเตล็ดจะมีสถานะตัวเลือก "Is Read Committed Snapshot On"


1

ทั้งใน SQL2005 และ 2012 ไม่DBCC USEROPTIONSแสดง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
โปรดลองอ่านstackoverflow.com/aboutนี้เพื่อทำความเข้าใจเพิ่มเติมเกี่ยวกับคำถาม / คำตอบที่นี่ใน SO การมีส่วนร่วมของคุณไม่ได้ตอบคำถาม เป็นความคิดเห็นเพิ่มเติมซึ่งคุณสามารถเพิ่มได้เมื่อคุณเพิ่มชื่อเสียง: stackoverflow.com/faq#reputation
Radim Köhler

1
คำตอบคือโอเคเนื่องจากพยายามตอบคำถามว่า "มีวิธีไหม" แต่การบอกสิ่งที่ไม่ได้ผลจะไม่ได้รับการยอมรับมากนัก
Christian Strempfer

4
ระดับการแยกในDBCC USEROPTIONSจะบอกคุณ หากเปิดread committed snapshotแล้วมิฉะนั้นจะปิด
Greg

@Greg - สแน็ปช็อตการอ่านคอมมิตถูกตั้งค่าที่ระดับฐานข้อมูลไม่ใช่ระดับการเชื่อมต่อของผู้ใช้ DBCC USEROPTIONS จะไม่บอกคุณว่าเปิดหรือปิดอยู่
JasonS
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.