إصلاح: فشل الاستعلام مع مستوى عزل المعاملة تعيين "القراءة غير ملتزم بها" بخطأ 601

الخطأ رقم: 363988 (SHILOH_BUGS)

الأعراض

عند تشغيل استعلام مع مستوى عزل المعاملة تعيين "القراءة غير ملتزم بها" إحباط الاستعلام SQL Server 2000 وتقوم بإرجاع رسالة الخطأ التالية:

ملقم: Msg 601 و 12 مستوى وحالة 3 سطر 14
لا يمكن أن يستمر الفحص مع NOLOCK نظراً لحركة البيانات.

السبب

قد تحدث هذه المشكلة عند حذف صف في جدول بين وقت قراءة SQL Server موقع الصف من فهرس ووقت SQL Server جلب الصف.

الحل

معلومات حزمة الخدمة

Microsoft SQL Server 2000لحل هذه المشكلة، يجب الحصول على أحدث حزمة خدمة ل للحصول على معلومات إضافية، انقر فوق رقم المقالة التالي لعرضها في "قاعدة معارف Microsoft":
كيفية الحصول على أحدث حزمة خدمة ل SQL Server 2000 290211

معلومات الإصلاح العاجل

يحتوي إصدار اللغة الإنجليزية من هذا الإصلاح العاجل على سمات الملف (أو سمات الملف الأحدث) المسرودة في الجدول التالي. يتم سرد التواريخ والأوقات الخاصة بهذه الملفات بالتوقيت العالمي المتفق عليه (UTC). عند عرض معلومات الملف، يتم تحويلها إلى التوقيت المحلي. لمعرفة الفرق بين التوقيت العالمي المتفق عليه والتوقيت المحلي، استخدم علامة التبويب المنطقة الزمنية في أداة التاريخ والوقت في "لوحة التحكم".
DateTimeVersionSize File name
-----------------------------------------------------------------------------

07-Feb-200316:14 786,432 bytes Distmdl.ldf
07-Feb-200316:142,359,296 bytes Distmdl.mdf
29-Jan-200312:25 180 bytes Drop_repl_hotfix.sql
31-Jan-200311:022000.80.763.01,557,052 bytes Dtsui.dll
29-Jan-200315:48 746,470 bytes Instdist.sql
29-Jan-200312:25 1,402 bytes Inst_repl_hotfix.sql
07-Feb-200317:102000.80.765.0 90,692 bytes Msgprox.dll
29-Jan-200311:487.0.9466.0 344,064 bytes Msvcr70.dll
29-Jan-200311:482000.80.722.0 57,904 bytes Osql.exe
07-Feb-200314:23 1,065,895 bytes Replmerg.sql
07-Feb-200317:102000.80.765.0 221,768 bytes Replprov.dll
07-Feb-200317:102000.80.765.0 307,784 bytes Replrec.dll
29-Jan-200315:48 1,084,318 bytes Replsys.sql
29-Jan-200311:482000.80.534.0 127,548 bytes Sqdedev.dll
07-Feb-200317:102000.80.765.0 176,696 bytes Sqlmap70.dll
07-Feb-200317:102000.80.765.0 57,920 bytes Sqlrepss.dll
14-Feb-200313:222000.80.769.0 7,512,145 bytes Sqlservr.exe
29-Jan-200311:482000.80.194.0 180,290 bytes Sqlunirl.dll
07-Feb-200317:102000.80.765.0 45,644 bytes Sqlvdi.dll
07-Feb-200317:102000.80.765.0 82,492 bytes Ssnetlib.dll

ملاحظة: بسبب تبعيات الملف، أحدث إصلاح عاجل أو الميزة التي تحتوي على الملفات قد أيضا يحتوي على ملفات إضافية.

الحالة

أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في قسم "تنطبق على". تم تصحيح هذه المشكلة أولاً في Microsoft SQL Server 2000 Service Pack 4.

مزيد من المعلومات

بعد تثبيت الإصلاح الجديد، يمكنك استخدام إشارة تتبع 9134 لتغيير سلوك SQL Server. لتمكين تتبع العلامة 9134 حيث يتم تشغيلها عند بدء تشغيل SQL Server، قم بإضافة علامة تتبع كمعلمة بدء تشغيل SQL Server. لإضافة علامة تتبع 9134 كمعلمة بدء تشغيل SQL Server، اتبع الخطوات التالية:
  1. في SQL Server Enterprise Manager، انقر نقراً مزدوجاً فوق الخادم الذي يقوم بتشغيل SQL Server ومن ثم انقر فوق
    خصائص.
  2. في التبويب عام ، انقر فوق معلمات بدء التشغيل.
  3. في مربع نص المعلمة ، اكتب
    -T9134، انقر فوق إضافة، ومن ثم انقر فوق
    OK.
  4. في مربع الحوار SQL Server Properties(Configure)-<اسم الخادم> ، انقر فوق " موافق".
  5. قم بإعادة تشغيل خدمة SQL Server للمعلمة الجديدة نافذة المفعول.
وكبديل لذلك، يمكنك تشغيل الاستعلام التالي في "محلل استعلام" لتشغيل إشارة التتبع بشكل حيوي:
DBCC TRACEON (9134, -1)
إذا لم تقم بإضافة إشارة تتبع 9134 كمعلمة بدء تشغيل، تأثير أمر DBCC TRACEON غير أن فقدان عند إعادة تشغيل خدمة SQL Server.

عند تشغيل إشارة تتبع 9134 وحذف صف أو تعديلها بين وقت قراءة SQL Server موقع الصف ووقت أنه جلب الصف من خلال بحث الإشارة مرجعية، لن إحباط الاستعلام أو إرجاع خطأ 601. بدلاً من ذلك، يتجاهل ملقم SQL الصف الذي لا يمكن تحديد موقع وتواصل البحث عن صفوف إضافية تفي بمعايير الاستعلام. ولذلك، يستمر تنفيذ الاستعلام؛ ومع ذلك، قد لا تتضمن النتائج التي SQL Server بإرجاع الصفوف التي تم حذفها أو نقلها أثناء تنفيذ الاستعلام.

ملاحظة: تعيين المعلومات الموجودة في هذه المقالة والتتبع تطبيق العلامة فقط لاستعلام الذي سيتم تشغيله باستخدام "مستوى عزل المعاملة" إلى "قراءة غير مكتملة". لا ينطبق المعلومات إلى استعلام يتم تشغيله باستخدام تلميح محسن NOLOCK. في هذه الحالة، يتغير السلوك من تلك الموضحة في قسم "الأعراض".

علامة تتبع لا يؤثر أيضا أن تناقضات أخرى الأخطاء والبيانات يمكن أن يحدث عند قراءة البيانات غير ملتزم بها. لمزيد من المعلومات حول مستويات العزل المعتمدة من قبل SQL Server وأثر استخدام كل مستوى العزل، راجع الموضوع "تأمين" في "كتب SQL Server عبر إنترنت".

تنصح Microsoft استخدام هذه العلامة تتبع ما لم تطبق ما يلي:
  • يتطلب التطبيق المستخدم مستوى عزل "قراءة غير مكتملة".
  • تستخدم يواجه عدد كبير من الأخطاء 601.
  • فهمت أنه عند استخدام علامة تتبع، يتم تجاهل الصفوف التي تم حذفها أو نقلها أثناء تنفيذ الاستعلام.
ملاحظة: قبل استخدام مستوى العزل "قراءة غير الملتزم بها"، يجب عليك فهم الوظائف. لمزيد من المعلومات حول مستوى العزل "قراءة غير الملتزم بها"، قم بزيارة موقع شبكة مطوري Microsoft (MSDN) التالي على الويب:

المراجع

للحصول على معلومات إضافية، انقر فوق رقم المقالة التالي لعرضها في "قاعدة معارف Microsoft":
235880 INF: إنشاء تلميح محسن أونكوميتيد NOLOCK أو قراءة مستوى عزل خطأ 605
لمزيد من المعلومات، قم بزيارة مواقع ويب MSDN التالي:
استكشاف أخطاء وإصلاحها خطأ 601
http://msdn2.microsoft.com/en-us/library/aa258726(SQL.80).aspx
تعيين مستوى عزل المعاملة
http://msdn2.microsoft.com/en-us/library/aa259216(SQL.80).aspx
خصائص

رقم الموضوع: 815008 - آخر مراجعة: 15‏/01‏/2017 - المراجعة: 1

تعليقات