مؤشرات الخطأ
اطّلع على السيناريو التالي:
-
تتوفر لديك قاعده بيانات Microsoft SQL Server 2012 تتضمن خيارات الALLOW_SNAPSHOT_ISOLATIONوالREAD_COMMITTED_SNAPSHOT ممكنة.
-
لديك ثلاثه استعلامات متزامنة علي الأقل والتي يتم تشغيلها علي الجدول نفسه.
-
تستخدم الاستعلامات تلميح الاستعلام (تابلوك, أوبدلوك) .
-
يتم تغليف كل استعلام في جمله BEGIN تران الصريحة ، ولكن لا يتم تنفيذ جمله التاكيد تران .
عند التزام بالاستعلام الأول في هذا السيناريو ، سيؤدي ذلك إلى توقف سير الاسم عن أحد الاستعلامات الأخرى. عند تمكين الREAD_COMMITTED_SNAPSHOT مع تلميحات الاستعلام تابلوك و أوبدلوك ، تاخذ الجلسات التي إيكس التامين علي الجدول. تحدث الحالة التامة عند محاولة الجلستين المتزامنتين تحويل تامينات إيكس إلى تامين X في الوقت نفسه. إذا تم تعطيل READ_COMMITTED_SNAPSHOT ، ستحصل الجلسات علي سته تامينات لن يتم تعطيلها عند تحويلها إلى تامين X. يعالج الإصلاح العاجل هذا السلوك عن طريق منح الLCK_M_SCH_S التامين بدلا من تامين إيكس عند استخدام READ_COMMITTED_SNAPSHOT مع تلميحات تابلوك و أوبدلوك .ملاحظه تحدث هذه المشكلة أيضا في Microsoft SQL Server 2008 R2. سيتم إصدار إصلاح عاجل ل SQL Server 2008 R2 قريبا.
الحل
تم تصحيح المشكلة أولا في التحديث التراكمي التالي ل SQL Server.
تحديث تراكمي 8 ل SQL Server 2012 SP1 /en-us/help/2917531
يحتوي كل تحديث تراكمي جديد ل SQL Server علي كل الإصلاحات العاجلة وكل تصحيحات الأمان التي تم تضمينها في التحديث التراكمي السابق. اطلع علي آخر التحديثات التراكمية ل SQL Server:
الحالة
أقرت Microsoft أن هذه المشكلة تحدث في منتجات Microsoft المسردة في المقطع "تنطبق على".