سؤال

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

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

المحلول

يمكن أن تنشأ حالات الجمود لأسباب عديدة ومجموعات منها:

  • تصميم مخطط ضعيف

  • فهارس غير صحيحة لعبء عمل الاستعلام الخاص بك

  • TSQL مكتوبة بشكل سيئ

  • مستويات عزل المعاملات العدوانية و/أو معاملات مفتوحة طويلة المدى

  • أنماط الوصول إلى التطبيقات الضعيفة

  • المواصفات المنخفضة أو الأجهزة التي تم تكوينها بشكل غير صحيح

كل هذه شائعة.

أقترح عليك أن تقرأ

نصائح أخرى

هذه المشكلة ليست غريبة جدًا - إنها نموذجية عندما لا يعرف المطورون الكثير عن كيفية عمل القفل ، والتفكير في المعاملات كـ "صناديق سوداء" ويتوقعون توسيع نطاق حلولهم.

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

أقترح البدء في SQL Server Profiler وإعداد تتبع سيولد رسمًا بيانيًا مميتًا. سيؤدي ذلك على الأقل إلى تحديد استفسارات مشكلتك والموارد المميتة. قم بإعداد أثر آخر يبحث عن استفسارات بطيئة (> قل ، 100 مللي ثانية) وتسريعها أيضًا. كلما طالت فترة استفساراتك ، زاد احتمال خلاف القفل.

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