سؤال

مرحبا،

لقد قمت بتطبيق تطبيق دردشة باستخدام المذنب. الطلب هو "تعليق" على الخادم حتى تنشأ رسائل جديدة. إذن، إذن، يعود إلى العميل مع الرسائل الجديدة، ويذهب إلى الخادم مرة أخرى.

مشكلتي هي:

من أجل التحقق من وجود رسائل جديدة، استدعت قاعدة البيانات كل 600 مللي ثانية. أقوم بإجراء استعلام بسيط "حدد ... من الرسائل حيث MessageID> '+ LastMessageID.

بالإضافة إلى ذلك، من أجل الحفاظ على وجود، قمت بتحديث قاعدة البيانات للغاية (جدا) في كثير من الأحيان مع كل مستخدم "Lastekeepalivetime".

ينمو سجل معاملة SQL Server ضخمة، وفي نقطة معينة، يتوقف تطبيق الدردشة عن العمل.

ليس لدى مستخدمي الدردشة المستخدمين المسجلين، فهي مجرد مستخدمين عشوائيين يمكنهم ترك الصفحة في أي وقت.

شكرا يارون

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

المحلول

هل يمكن أن تستخدم كائن ذاكرة التخزين المؤقت الشائع لأخير المعلومات الحية؟ يبدو وكأنه كمية صغيرة من المعلومات ويمكنك تجنب الكثير من تحديثات SQL.

نصائح أخرى

إليك كيفية الحفاظ على سجل المعاملات من الخروج عن السيطرة: http://support.microsoft.com/kb/873235.

تشمل الخيارات في هذه المقالة:

  • القيام بتقليص.
  • تغيير حجم السجل.
  • تكوين التوسع التلقائي.
  • تغيير نموذج الاسترداد.
  • النسخ الاحتياطي لملف السجل بانتظام.

و اكثر.

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

يجب أن يحل التبديل من سجل المعاملات ذات الوضع الكامل إلى وضع بسيط مشكلات نمو السجل الخاص بك.

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

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