سؤال

أنا أبحث عن اقتراحات حول كيفية تصحيح مشكلات حالة الجمود ومطاردتها في قاعدة بيانات SQL Server 2000.لقد أوصيتني باستخدام علامتي التتبع 1024 و3605، والتي وجدت أنها تعطيني ما يلي:

1024 - تقوم علامة التتبع هذه بإرجاع نوع الأقفال المشاركة في حالة توقف تام والأمر الحالي المتأثر.

3605 - تقوم علامة التتبع هذه بإرسال مخرجات التتبع إلى سجل الأخطاء.

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

هل هناك أي اقتراحات أخرى أو قصص حرب نهاية سعيدة لمطاردة كل هذه المشكلة الشائعة؟

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

المحلول

فيما يلي الكتاب المقدس حول استكشاف أخطاء حالة الجمود وإصلاحها: http://blogs.msdn.com/bartd/archive/2006/09/09/Deadlock-Troubleshooting_2C00_-Part-1.aspx

نصائح أخرى

نص مفيد جدًا لتحليل حالات الجمود: http://www.sommarskog.se/sqlutil/aba_lockinfo.html

بمجرد معرفة عبارات SQL المعنية، سيساعدك تحليل الكود بالتأكيد.تقوم بعض القواعد المصغرة بالتحقق من الترتيب الذي يتم به الوصول إلى الصفوف والتحقق من مستوى العزل المستخدم لعبارات SQL.يمكن أن يساعد تتبع ملف التعريف كثيرًا.

في معظم الأحيان، يكون ذلك بسبب محاولة القارئ الحصول على قفل مشترك لمورد مقفل حصريًا بواسطة الكاتب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top