تصحيح: نتائج جزئية في استعلام فهرس متفاوت المسافات كولومنستوري عام 2014 خادم SQL

هام: تمت ترجمة هذه المقالة باستخدام برامج مايكروسوفت للترجمة الآلية ومن المحتمل ان يتم تحريرها او تدقيقها بعد ذلك من خلال تكنولوجيا منصة مجموعات الترجمة(CTF) او من خلال مترجم بشري. تقدم لك شركة مايكروسوفت هذه المقالات المترجمة بشكل آلي او بالترجمة البشرية او بعد تحريرها وتدقيقها من قبل مجموعات الترجمة حتى تمكنكم من الوصول إلى جميع المقالات الموجودة في قواعد المعرفة لديها بلغات مختلفة. إلا أن المقالات المترجمة قد تحتوي على أخطاء في المفردات او بناء الجمل او النحو. وعليه، فإن شركة مايكروسوفت ليست مسؤولة عن اية أخطاء او عدم دقة في الترجمة او أية أضرار قد تحدث نتيجة أخطاء في ترجمة محتويات النص او استخدامه من قبل العملاء.

اضغط هنا لرابط المقالة باللغة الانجليزية3067257
تتناول هذه المقالة مشكلة التي تحدث أثناء استعلام فهرس متفاوت المسافات كولومنستوري في Microsoft SQL Server 2014. توفر هذه المقالة قرار لهذه المشكلة.
الموجز
عند استخدام استعلام يقوم بتفحص على فهرس متفاوت المسافات كولومنستوري في Microsoft SQL Server 2014،، في حالات نادرة، ظهور نتائج الاستعلام الجزئية.

تحدث هذه المشكلة عند تشغيل العملية التالية.
الخطوة 1
عبارة SQL للعمليات [إدراج أو إدراج الجملة] إدراج بيانات في جدول يحتوي كولومنستوري فهرس متفاوت المسافات. أثناء هذه العملية، يتم تطبيق الشروط التالية:
  • عندما يصل عبارة SQL للعمليات إلى حد رووجروب، يغلق رووجروب R1 لديها قطعة S1.
  • مقطع S1 يشير إلى القاموس المحلي D1.
  • العبارة يستمر إدراج الصفوف الجديدة رووجروب R2.
  • عند إغلاق رووجروب R1 القاموس المحلي D1 أيضا ليس بإغلاق. إذا بقي قاموس D1 المساحة المتوفرة، يمكنك ترك مفتوحاً وإعادة استخدامه في رووجروب الجديدة R2.
الخطوة 2
إذا عبارة SQL للعمليات المنتهية في صورة غير طبيعية أو إلغاء قبل أن يتم إغلاقه رووجروب جديدة R2، تطبق الشروط التالية:
  • تحدث التغييرات في بيانات التعريف كولومنستوري في سوبترانساكشنز الالتزام بمعزل عن المعاملات الخارجية.
  • عند هذه النقطة، يشير رووجروب R1 استمرت في جدول "النظام" في "قيد الإنشاء" أو حالة غير مرئي، ومقطع S1 القاموس D1.
  • لم يكن هناك صف تم إنشاؤه في جدول النظام للقاموس D1. يرجع عبارة SQL للعمليات ابدأ فرصة لإغلاق صف موجود. لذلك، استمرت صف موجود.
الخطوة 3
في حالة نموذجية، في حالة بدء تشغيل مهمة خلفية انتقال المجموعة بعد انتهاء عبارة SQL للعمليات، إزالة المهمة الخلفية رووجروب غير مرئي R1 ومقطع S1. إذا بدأت الآن عبارة SQL للعمليات جديدة وإنشاء رووجروب R3 يحتوي مقطع جديد S3 يتطلب قاموس محلي جديد، لا يمكنك إعادة استخدام معرف داخلي لقاموس D1. وهذا لأن تحتفظ بحالة الذاكرة كولومنستوري قاموس معرفات المستخدمة. لذلك، سيتم الرجوع إلى مقطع S3 D2 القاموس الجديد.

ملاحظة: الشرط في هذه الخطوة حالة شائعة. لذلك، حدوث لا تلف.
الخطوة الرابعة
وإذا فقدت SQL Server حالة القاموس D1 في الذاكرة قبل انتقال المجموعة المهمة ساري المفعول (وينفذ كما هو موضح في الخطوة 3)، تحدث المشكلة الموضحة في هذه المقالة.

ملاحظات
  • يحدث هذا الحدث لأي من الأسباب التالية:
    • يواجه SQL Server الذاكرة الزائد، ومحتويات الذاكرة في القاموس D1 تم إجلاؤهم من الذاكرة.
    • يتم إعادة تشغيل مثيل SQL Server.
    • قاعدة البيانات التي تحتوي على فهرس متفاوت المسافات كولومنستوري غير متصل ويأتي ثم إعادة الاتصال.
  • تحدث بعد أي من هذه الأحداث وأبنية الذاكرة في تحميل SQL Server، لا يوجد سجل الذي به الداخلية وقاموس D1 معرف موجودة. وهذا لأنه لا يتم الاحتفاظ القاموس D1 في جداول النظام عندما تم إنهاء عبارة SQL للعمليات أو كونسيليد.
  • إذا تم بدء تشغيل مهمة خلفية انتقال المجموعة في هذه المرحلة، أية أخطاء تحدث بسبب تطبيق الشروط الموضحة في الخطوة 3.
  • إذا تم إنشاء رووجروب جديد R3 قبل بدء المهمة الخلفية المجموعة المحرك (لكل عنصر نقطي السابقة)، يعين ملقم SQL نفس معرف داخلي للقاموس الجديد D1، ويشير قاموس D1 لقطاع S3 في رووجروب R3.
  • عند بدء تشغيل مهمة خلفية انتقال المجموعة بعد الإجراء السابق، يسقط رووجروب غير مرئي R1 وقطاعاته S1 جنبا إلى جنب مع قاموس جديد D1. يحدث هذا بسبب انتقال المجموعة يعتبر هذا القاموس الجديد D1 والقاموس الأصلي D1 مراجع S1 هي نفسها.

    ملاحظة: عند حدوث هذه المشكلة، لا يمكن الاستعلام عن محتويات R3 رووجروب.
الحل
تم تصحيح هذه المشكلة أولاً في التحديثات التراكمية التالية ل SQL Server:


يتم تضمين الإصلاح الخاص بهذه المشكلة أيضا في التوزيع العام (GDR) إصدار التحديثات التالية:

التحديث الأمني الخاص بنظام التشغيل SQL Server 2014 QFE
يتضمن هذا التحديث 8 التحديث التراكمي هذا الإصلاح الهامة وتحديثات الأمان MS15-058 المطلوبة.

التحديث الأمني الخاص بنظام التشغيل SQL Server 2014 GDR
يتضمن هذا التحديث هذا الإصلاح الهامة وتصحيحات الأمان التراكمية خلال MS15 058.

تحديث SQL Server 2014 Service Pack 1 GDR غير متعلق بالأمان
يتضمن هذا التحديث هذا الإصلاح الهامة.

حول التحديثات التراكمية ل SQL Server

يحتوي التحديث التراكمي كل جديدة ل SQL Server على كافة الإصلاحات العاجلة وكافة إصلاحات الأمان التي تم تضمينها مع التحديث التراكمي السابق. راجع أحدث التحديثات التراكمية ل SQL Server:
معلومات أخرى

رسائل الخطأ

المتأثرة حاليا في قاعدة البيانات إذا قمت بتشغيل DBCC CHECKDB بعد تطبيق هذا الإصلاح، تتلقى رسالة الخطأ التالية:
Msg 5289، مستوى 16 حالة 1، السطر الأول
كولومنستوري متفاوت المسافات فهرس 'cci' على الجدول '' يحتوي على واحد أو أكثر من قيم البيانات التي لا تتطابق مع قيم البيانات في قاموس. استعادة البيانات من نسخة احتياطية.

المتأثرة حاليا في قاعدة البيانات عند تشغيل استعلام الجداول المتأثرة بفحص بعد تطبيق هذا الإصلاح، تتلقى رسالة الخطأ التالية:
Msg 5288، مستوى 16 حالة 1، السطر الأول
يحتوي الفهرس كولومنستوري واحد أو أكثر من قيم البيانات التي لا تتطابق مع قيم البيانات في قاموس. الرجاء تشغيل DBCC CHECKDB للحصول على مزيد من المعلومات.

إذا تلقيت هذه الأخطاء، يمكنك حفظ البيانات غير المعطوب وذلك بمجمع تصدير البيانات تتأثر أعمدة/rowgroups ومن ثم إعادة تحميل البيانات بعد إسقاط أو إنشاء فهرس متفاوت المسافات كولومنستوري. يجب تمكين تتبع العلامة 10207 لمنع الخطأ 5288 والعودة إلى السلوك القديم لتخطي rowgroups تالفة.

ملاحظة: يتم إنشاء رسائل الخطأ 5288 و 5289 لهذا رووجروب R3 لديها قطعة S3. يتم استخدام إشارة التتبع 10207 لاستخراج شرائح R3 رووجروب التي لا تتأثر بالقاموس مفقودة D1.

الاستعلام عن قواعد البيانات المتأثرة

لتحديد ما إذا كانت قاعدة البيانات الذي يحتوي على فهارس كولومنستوري الفعل يتأثر بهذه المشكلة، قم بتشغيل الاستعلام التالي:
select         object_name(i.object_id) as table_name,        i.name as index_name,        p.partition_number,        count(distinct s.segment_id) as damaged_rowgroups from        sys.indexes i        join sys.partitions p on p.object_id = i.object_id and p.index_id = i.index_id        join sys.column_store_row_groups g on g.object_id = i.object_id and g.index_id = i.index_id and g.partition_number = p.partition_number        join sys.column_store_segments s on s.partition_id = p.partition_id and s.segment_id = g.row_group_id where         i.type in (5, 6)        and s.secondary_dictionary_id <> -1         and g.state_description = 'COMPRESSED'        and s.secondary_dictionary_id not in        (               select dictionary_id from sys.column_store_dictionaries d               where d.hobt_id = p.hobt_id and d.column_id = s.column_id        ) group by         object_name(i.object_id),        i.name,        p.partition_number 

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

    قبل أن تقوم بتنفيذ الاستعلام يمكنك تعطيل المهمة انتقال المجموعة الخلفية باستخدام إشارة تتبع 634. استخدم هذا الأمر لتعطيل مهمة الخلفية: TRACEON DBCC (634،-1). بعد انتهاء الاستعلام تنفيذ، تذكر إعادة تمكين المهمة في الخلفية باستخدام الأمر: تراسيوف DBCC (634،-1).

    تأكد أيضا من وجود أية أوامر المجمع إدراج BCP/تحديد-إلى إدراج البيانات في الجداول التي تستخدم الفهرس كولومنستوري أثناء تشغيل هذا الاستعلام.

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

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 3067257 - آخر مراجعة: 07/22/2015 17:36:00 - المراجعة: 3.0

Microsoft SQL Server 2014 Service Pack 1, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard

  • kbqfe kbsurveynew kbexpertiseadvanced kbfix kbmt KB3067257 KbMtar
تعليقات