SQL Server 2000 - تصحيح حالات الجمود
-
09-06-2019 - |
سؤال
أنا أبحث عن اقتراحات حول كيفية تصحيح مشكلات حالة الجمود ومطاردتها في قاعدة بيانات 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.يمكن أن يساعد تتبع ملف التعريف كثيرًا.
في معظم الأحيان، يكون ذلك بسبب محاولة القارئ الحصول على قفل مشترك لمورد مقفل حصريًا بواسطة الكاتب.