قد تواجه انخفاض في الأداء الاستعلام بعد إجراء بعض عمليات صيانة قاعدة البيانات أو العمليات المعاملة العادية في SQL Server 2005

الخطأ رقم: 329155 (سقلبودت)
الخطأ رقم: 329155 (SQL بو عيب تعقب)الخطأ #: 54582 (تعديل المحتوى)

الأعراض

في Microsoft SQL Server 2005، قد تواجه انخفاض في الأداء الاستعلام بعد إجراء بعض عمليات صيانة قاعدة البيانات أو العمليات المعاملة العادية. على سبيل المثال، قد تلاحظ انخفاض مفاجئ في أداء الاستعلام بعد استعادة نسخة احتياطية من قاعدة بيانات.

بدءاً من SQL Server 2005 Service Pack 2، فسوف تلاحظ رسائل مثل التالية في سجل أخطاء SQL Server عند حدوث هذه المشكلة:
06:03:29.330 2006/10/15 spid59 SQL Server واجه مرات حدوث 4 من تدفق كاتشيستوري كاتشيستوري '"خطط الكائن"' (جزء من ذاكرة التخزين المؤقت للخطة) نظراً لبعض صيانة قاعدة البيانات أو إعادة تكوين العمليات.

06:03:29.420 2006/10/15 spid59 SQL Server واجه مرات حدوث 4 من تدفق كاتشيستوري كاتشيستوري 'خطط SQL' (جزء من ذاكرة التخزين المؤقت للخطة) نظراً لبعض صيانة قاعدة البيانات أو إعادة تكوين العمليات.
06:03:29.420 2006/10/15 spid59 SQL Server واجه مرات حدوث 4 من تدفق كاتشيستوري كاتشيستوري '"ربط أشجار"' (جزء من ذاكرة التخزين المؤقت للخطة) نظراً لبعض صيانة قاعدة البيانات أو إعادة تكوين العمليات.
ومع ذلك، يمكنك تشغيل الأمر فريبروككاتشي DBCC أو الأمر فريسيستيمكاتشي DBCC لمسح التخزين المؤقت الداخلي. يتم مسح ذاكرة التخزين المؤقت الداخلي عن طريق تشغيل أحد هذه الأوامر، ستلاحظ رسائل مشابهة لما يلي في سجل خطأ SQL Server:
2006-12-14 11:37:03.57 spid53 SQL Server واجه مرات حدوث 1 من تدفق كاتشيستوري 'خطط SQL' (جزء من ذاكرة التخزين المؤقت للخطة) نتيجة لعمليات 'DBCC فريبروككاتشي' أو 'DBCC فريسيستيمكاتشي' كاتشيستوري.
2006-12-14 11:37:03.57 spid53 SQL Server واجه مرات حدوث 1 من تدفق كاتشيستوري '"ربط أشجار"' (جزء من ذاكرة التخزين المؤقت للخطة) نتيجة لعمليات 'DBCC فريبروككاتشي' أو 'DBCC فريسيستيمكاتشي' كاتشيستوري.
لذلك، يمكنك فحص سجل خطأ SQL Server تحديد ما إذا كانت المشكلة بسبب المشكلة الموضحة في هذه المقالة.

ملاحظة: يحدث هذا السلوك في Microsoft SQL Server 2008.

السبب

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

الحالة

يعتبر هذا السلوك حسب التصميم.

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

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

    ملاحظة: لقطات قاعدة البيانات متوفرة فقط في Microsoft SQL Server 2005 Enterprise Edition.
  • تغيير حالة قاعدة البيانات بدون اتصال أو على إنترنت.
  • بنجاح إعادة إنشاء سجل المعاملات لقاعدة بيانات.
  • استعادة نسخة احتياطية من قاعدة بيانات.
  • يمكنك تشغيل العبارة DBCC CHECKDB.

    ملاحظة: يكون هذا صحيحاً فقط في إصدارات أقدم من SQL Server 2005 SP2 من SQL Server 2005. بعد تثبيت SQL Server 2005 SP2 أو الإصدارات الأحدث، لا يتم مسح ذاكرة التخزين المؤقت الإجراء بالكامل عند تشغيل العبارة DBCC CHECKDB.
  • فصل قاعدة بيانات.
  • حدد أحد الخيارات التالية عندما تقوم بتشغيل "تغيير قاعدة البيانات":
    • دون اتصال
    • عبر الإنترنت
    • تعديل مجموعة الملفات الافتراضية
    • MODIFY_NAME
    • تعديل ملفات READ_WRITE
    • ترتيب النسخ
    • تعديل ملفات READ_ONLY
    • READ_ONLY
    • READ_WRITE
  • يتم مسح ذاكرة التخزين المؤقت الإجراء بأكمله إذا تم تغيير أحد خيارات الملقم التالية قبل عبارة إعادة التكوين:
    • تقاطع تسلسل ملكية db
    • إنشاء فهرس الذاكرة (KB)
    • مهلة الاستعلام البعيد (s)
    • خيارات المستخدم
    • حجم النسخ الاحتياطي النص كحد أقصى (B)
    • حد التكلفة للتوازي
    • أقصى درجة من التوازي
    • الذاكرة الأدنى كل استعلام (KB)
    • الانتظار الاستعلام (s)
    • ذاكرة الخادم الحد الأدنى (ميغا بايت)
    • ذاكرة الملقم الحد الأقصى (ميغا بايت)
    • حد التكلفة الحاكم الاستعلام
    ملاحظة: لن يتم مسح ذاكرة التخزين المؤقت الإجراء إذا لم تتغير القيمة الفعلية أو إذا تم تعيين القيمة الجديدة لخيار الملقم ذاكرة الملقم الحد الأقصى إلى 0.
إذا واجهتك هذه المشكلة، تلاحظ تغييرات في القيم التالية عند استخدام "مراقب الأداء" لتجميع البيانات من عدادات الأداء في SQL Server 2005:
  • كائن الأداء: عملية
    العداد: % وقت المعالج
    مثيل: sqlservr

    إلى زيادة قيمة هذا العداد بسبب تزايد النشاط وحدة المعالجة المركزية. بشكل أساسي، يتم مسح ذاكرة التخزين المؤقت الإجراء بالكامل في حالة حدوث هذه المشكلة. ولذلك، يجب إنشاء طلبات لاحقة خطط جديدة ليتم تخزينها مؤقتاً. وسيزيد هذا السلوك قليلاً نشاط وحدة المعالجة المركزية.
  • كائن الأداء: ذاكرة التخزين المؤقت SQLServer:Plan
    العداد: حساب كائن ذاكرة التخزين المؤقت
    مثيل: _ total

    كائن الأداء: ذاكرة التخزين المؤقت SQLServer:Plan
    العداد: صفحات ذاكرة التخزين المؤقت
    مثيل: _ total

    قيم هذه العدادات ستنخفض بشكل مفاجئ.

    ملاحظة: للحصول على مثيل مسمى من SQL Server 2005، يسمى كائن أداء $ MSSQLاسم المثيل: "خطة ذاكرة التخزين المؤقت".
  • كائن الأداء: إحصائيات SQLServer:SQL
    العداد: سقلكومبيليشنز/الثانية

    زيادة كبيرة قيمة هذا العداد بعد هذا الحادث.

    ملاحظة: للحصول على مثيل مسمى من SQL Server 2005، يسمى كائن أداء $ MSSQLاسم المثيل: إحصائيات SQL.
إذا قمت بالتقاط تتبع Profiler SQL باستخدام الحدث SP:CacheRemove ، لاحظت إنشاء هذا الحدث مع قيمة العمود TextData التالية عند حدوث هذه المشكلة:
"مسح ذاكرة التخزين المؤقت بالكامل الإجراء"
خصائص

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

تعليقات