سؤال

توجد في MS SQL Server طريقة لاكتشاف ما إذا كانت قاعدة البيانات قد تم تعيين مستوى عزلها عبر أمر T-SQL ALTER DATABASE <database> SET READ_COMMITTED_SNAPSHOT ON;

لا يمكنني العثور على طريقة بسيطة لاكتشاف ذلك في T-SQL أو عبر واجهة المستخدم الرسومية الخاصة بـ Management Studio.

تيا

هل كانت مفيدة؟

المحلول

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)..

نصائح أخرى

  1. حسب https://msdn.microsoft.com/en-us/library/ms180065.aspx، "تقارير DBCC UserOptions عن مستوى عزل" قراءة لقطة ملتزمة "عندما يتم تعيين خيار قاعدة البيانات read_committ_snapshot على التشغيل ، ويتم تعيين مستوى عزل المعاملة على" قراءة ملتزمة ".يتم قراءة مستوى العزل الفعلي ملتزمًا."

  2. أيضًا في SQL Server Management Studio، في خصائص قاعدة البيانات ضمن خيارات->متنوعة توجد حالة الخيار "هل تم قراءة اللقطة الملتقطة"

لا في 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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top