الأعراض
يُرجى مراعاة السيناريو التالي:
- لديك جدول Filestream كبير جدا.
- يمكنك تشغيل استعلام حذف للصفوف في جدول Filestream الذي ينشئ خطة استعلام مكلفة، مثل تلك التي تتم تصفيتها بواسطة صلة داخلية بجدول كبير آخر في النظام.
- يختار محسن الاستعلام خطة تنفيذ متوازية.
في هذا السيناريو، سيحدث تأكيد، وقد تتلقى رسائل خطأ تشبه ما يلي في سجل الأخطاء SQL Server:
خطأ SpidNumberل DateTime: 5553، الخطورة: 20، الحالة: 6.
SQL Server خطأ داخلي ل DateTimespid SpidNumber. يتعذر على مدير FILESTREAM متابعة الأمر الحالي.
الحالة
لقد أكدت Microsoft على أن هذه مشكلة في منتجات Microsoft المُدرجة في القسم "ينطبق على".
الدقة
تم إصلاح المشكلة في التحديثات التراكمية التالية SQL Server:
حول التحديثات التراكمية SQL Server:
يحتوي كل تحديث تراكمي جديد SQL Server على جميع الإصلاحات العاجلة وجميع إصلاحات الأمان التي تم تضمينها مع التحديث التراكمي السابق. اطلع على آخر التحديثات التراكمية SQL Server:
الحل البديل
للتغلب على هذه المشكلة، يمكنك استخدام الأسلوب التالي:
انقل استعلام الصلة الداخلية إلى عبارة منفصلة واحفظ النتائج في جدول مؤقت. ثم قم بتشغيل استعلام الحذف الذي تمت تصفيته بواسطة الإدخالات في الجدول المؤقت. بالإضافة إلى ذلك، يمكنك زيادة حد التكلفة للتوازي لإجبار المحسن على تسلسل خطة الاستعلام.
على سبيل المثال:
SELECT RefTable.Alias INTO #T FROM DB.dbo.OuterTable INNER JOIN DB.dbo.RefTable ON RefTable.Alias = OuterTable.Alias
WHERE OuterTable.Alias > 30006 AND OuterTable.Alias < 30010
حذف من DB.dbo. [جدول] WHERE Alias IN (SELECT * FROM #T)
المراجع
تعرّف على المصطلحات التي تستخدمها Microsoft لوصف تحديثات البرامج.