ใน MS SQL Server มีวิธีตรวจสอบว่าฐานข้อมูลมีการตั้งค่าระดับการแยกผ่านคำสั่ง T-SQL หรือไม่ ALTER DATABASE <database> SET READ_COMMITTED_SNAPSHOT ON;
ฉันไม่พบวิธีง่ายๆในการตรวจจับสิ่งนี้ทั้งใน T-SQL หรือผ่าน GUI ของ Management Studio
TIA
ใน MS SQL Server มีวิธีตรวจสอบว่าฐานข้อมูลมีการตั้งค่าระดับการแยกผ่านคำสั่ง T-SQL หรือไม่ ALTER DATABASE <database> SET READ_COMMITTED_SNAPSHOT ON;
ฉันไม่พบวิธีง่ายๆในการตรวจจับสิ่งนี้ทั้งใน T-SQL หรือผ่าน GUI ของ Management Studio
TIA
คำตอบ:
SELECT is_read_committed_snapshot_on FROM sys.databases
WHERE name= 'YourDatabase'
ผลตอบแทน:
READ_COMMITTED_SNAPSHOT
ตัวเลือกเปิดอยู่ การดำเนินการอ่านภายใต้READ COMMITTED
ระดับการแยกจะขึ้นอยู่กับการสแกนสแน็ปช็อตและไม่ได้รับการล็อกREAD_COMMITTED_SNAPSHOT
ตัวเลือกปิดอยู่ อ่านการดำเนินงานภายใต้READ COMMITTED
การใช้งานระดับแยกที่ใช้ร่วมกัน (S) ล็อคตามhttps://msdn.microsoft.com/en-us/library/ms180065.aspx "DBCC USEROPTIONS รายงานระดับการแยกของ 'อ่านสแนปชอตที่มุ่งมั่น' เมื่อตัวเลือกฐานข้อมูล READ_COMMITTED_SNAPSHOT ถูกตั้งค่าเป็นเปิดและระดับการแยกธุรกรรมคือ ตั้งค่าเป็น 'อ่านคอมมิต' ระดับการแยกที่แท้จริงจะถูกอ่านโดยคอมมิต "
นอกจากนี้ใน SQL Server Management Studio ในคุณสมบัติฐานข้อมูลภายใต้ตัวเลือก -> เบ็ดเตล็ดจะมีสถานะตัวเลือก "Is Read Committed Snapshot On"
ทั้งใน 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
DBCC USEROPTIONS
จะบอกคุณ หากเปิดread committed snapshot
แล้วมิฉะนั้นจะปิด