مؤشرات الخطأ
اطّلع على السيناريو التالي:
-
يمكنك استخدام قاعدة بيانات مع تعيين مستوى التوافق إلى 130 في Microsoft SQL Server 2016.
-
يمكنك تنفيذ استعلام يصل إلى فهرس مخزن الأعمدة وفهرس مخزن الصفوف أو كومة الذاكرة المؤقتة، ويتضمن دالة تقييم عامل تصفية (عبارة WHERE).
في هذا السيناريو، لن يتمكن SQL Server من دفع دالة تقييم عامل التصفية بالقرب من عامل تشغيل مصدر البيانات (فحص الجدول أو الفهرس أو البحث). قد يؤدي هذا إلى أداء استعلام دون المستوى الأمثل.
بالإضافة إلى ذلك، إذا كان الاستعلام يستخدم تعبيرا (مثل تحويل النوع) حيث يعتمد صحته على البيانات المصفاة (على سبيل المثال، يتم تحويل عمود جدول char إلى int، ولكن فقط مجموعة فرعية من القيم تحتوي على تمثيل int صالح، ويتم تحديد هذه المجموعة الفرعية بواسطة دالة تقييم عامل التصفية)، فقد يفشل الاستعلام مع خطأ تحويل البيانات الذي يشبه أحد الإجراءات التالية:
فشل تحويل Msg 245، المستوى 16، الحالة 1، السطر 20
عند تحويل قيمة varchar '0.5' إلى نوع البيانات int. Msg 8114، المستوى 16، الحالة 5، الخط 34 خطأ في تحويل نوع البيانات varchar إلى bigint.الحل
تم تصحيح هذه المشكلة في التحديث التراكمي التالي ل SQL Server:التحديث التراكمي 2 SQL Server 2016 SP1
ملاحظهيجب تمكين الإصلاحات العاجلة لمحسن الاستعلام حتى يصبح هذا الإصلاح ساري المفعول.
يمكنك تمكين الإصلاحات العاجلة لمحسن الاستعلام باستخدام أحد الخيارات التالية: علامة التتبع 4199، أو إعداد تكوين نطاق قاعدة البيانات QUERY_OPTIMIZER_HOTFIXES=ON (متوفر في SQL Server 2016 والإصدارات الأحدث)، أو USE_HINT خيار الاستعلام "ENABLE_QUERY_OPTIMIZER_HOTFIXES" (متوفر في SQL Server 2016 SP1 والإصدارات الأحدث).
يحتوي كل تحديث تراكمي جديد SQL Server على جميع الإصلاحات العاجلة وجميع إصلاحات الأمان التي تم تضمينها مع التحديث التراكمي السابق. اطلع على آخر التحديثات التراكمية SQL Server:آخر تحديث تراكمي SQL Server 2016
الحالة
أقرت Microsoft أن هذه المشكلة تحدث في منتجات Microsoft المسردة في المقطع "تنطبق على".
المراجع
تعرف على المصطلحاتالتي تستخدمها Microsoft لوصف تحديثات البرامج.