تخطي إلى المحتوى الرئيسي
الدعم
تسجيل الدخول باستخدام حساب Microsoft
تسجيل الدخول أو إنشاء حساب.
مرحباً،
تحديد استخدام حساب مختلف!
لديك حسابات متعددة
اختر الحساب الذي تريد تسجيل الدخول باستخدامه.

تناقش هذه المقالة المشكلة التي تحدث اثناء استعلام فهرس كولومنستوري متفاوت البعد في Microsoft SQL Server 2014. توفر هذه المقالة حلا لهذه المشكلة.

الملخص

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

الخطوة 1

تقوم جمله SQL للعمليات [ادراج أو ادراج مجمع] بادراج البيانات في جدول يحتوي علي فهرس كولومنستوري متفاوت البعد. اثناء هذه العملية ، تنطبق الشروط التالية:

  • عند وصول جمله SQL للعمليات إلى عتبه رووجروب ، فانها تغلق رووجروب R1 التي تحتوي علي المقطع S1.

  • المقطع S1 النقاط إلى القاموس المحلي D1.

  • تستمر العبارة في ادراج صفوف لرووجروب الجديدة.

  • عند إغلاق رووجروب R1 ، لا يجب أيضا إغلاق القاموس المحلي D1. إذا ما زال القاموس في D1 متوفرا ، فيمكنك تركه مفتوحا وأعاده استخدامه لرووجروب R2 الجديد.

الخطوة 2

إذا انتهت جمله SQL للعمليات بشكل غير طبيعي أو تم إلغاؤها قبل ان تقوم بإغلاق الرووجروب الجديدة R2 ، ستنطبق الشروط التالية:

  • تحدث تغييرات بيانات تعريف كولومنستوري في سوبترانساكتيونس التي يتم تنفيذها بشكل مستقل عن المعاملة الخارجية.

  • في هذه المرحلة ، يستمر رووجروب R1 في جدول النظام في القسم "ضمن الإنشاء" أو حاله غير مرئية ، ويشير المقطع S1 إلى القاموس D1.

  • لم يتم إنشاء صف في جدول النظام للقاموس D1. يرجع ذلك إلى ان جمله SQL للعمليات لا تحتوي علي فرصه لإغلاق الصف الحالي. لذلك ، يستمر الصف الموجود.

الخطوة 3

في الحالات النموذجية ، إذا كانت المهمة الخلفية لمحرك المجموعة تبدا بعد انتهاء جمله SQL للعمليات ، ستزيل مهمة الخلفية رووجروب R1 ، والمقطع S1. إذا تم بدء تشغيل عبارة SQL للعمليات الجديدة الآن وقامت بإنشاء رووجروب R3 الذي يحتوي علي المقطع الجديد S3 الذي يتطلب قاموسا محليا جديدا ، فلا يمكنك أعاده استخدام المعرف الداخلي للقاموس D1. يرجع ذلك إلى ان حاله الذاكرة في كولومنستوري تحتفظ بمعرفات القاموس المستخدمة. لذلك ، سيشير المقطع S3 إلى قاموس جديد D2.ملاحظة يتم إصدار Acrobat Reader من قِبل شركة Adobe Systems Inc.‎. الشرط في هذه الخطوة هو شرط شائع. ولذلك ، لا يحدث اي عطب.

الخطوة 4

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

  • يحدث هذا الحدث لأي من الأسباب التالية:

    • تجربه SQL Server في الذاكرة الزائدة ، والمحتويات الموجودة في الذاكرة في القاموس D1 تم استردادها من الذاكرة.

    • أعاده تشغيل مثيل SQL Server.

    • ان قاعده البيانات التي تحتوي علي فهرس كولومنستوري المرتبات لا تعمل دون اتصال ، ثم تعود مره أخرى إلى الاتصال.

  • بعد حدوث اي من هذه الاحداث وقام SQL Server باعاده تحميل البنيات الموجودة في الذاكرة ، لا يوجد اي سجل في القاموس D1 ومعرف داخلي موجود. هذا بسبب عدم الاحتفاظ بالقاموس D1 في جداول النظام عند انتهاء جمله SQL للعمليات أو كونسيليد.

  • إذا بدات مهمة الخلفية لمحركات المجموعات في هذه المرحلة ، فلن تحدث اي أخطاء بسبب تطبيق الشروط الموضحة في الخطوة 3.

  • إذا تم إنشاء R3 رووجروب جديده قبل بدء المهمة الخلفية لمحرك المجموعة (لكل عنصر تعداد نقطي سابق) ، سيعين SQL Server نفس المعرف الداخلي إلى القاموس الجديد D1 ، ويشير إلى القاموس D1 للجزء S3 في رووجروب R3.

  • عند بدء المهمة الخلفية لمحركات المجموعات بعد الاجراء السابق ، فانها تقوم بإسقاط غير مرئي رووجروب R1 وقطعها S1 معا في القاموس الجديد D1. يحدث هذا بسبب ان القاموس الجديد هو D1 ، والقاموس الأصلي D1 بالاضافه إلى ان مراجعات S1 هي نفسها.ملاحظة يتم إصدار Acrobat Reader من قِبل شركة Adobe Systems Inc.‎. عند حدوث هذا الشرط ، لا يمكنك الاستعلام عن محتويات رووجروب R3.

الحل

تم تصحيح المشكلة أولا في التحديثات التراكمية التالية ل SQL Server:

تحديث تراكمي 1 ل Sql server 2014 SP1 التحديث التراكمي 8 ل sql server 2014يتم أيضا تضمين تصحيح لهذه المشكلة في تحديثات إصدار التوزيع العام (GDR) التالية:

تحديث الأمان ل SQL Server 2014 QFE  يتضمن هذا التحديث التحديث التراكمي 8 ، وهذا الإصلاح المهم ، وتحديثات الأمان المطلوبة ل058 MS15.تحديث الأمان ل SQL Server 2014 GDR  يتضمن هذا التحديث التصحيح الهام وتصحيحات الأمان التراكمية من خلال MS15-058.نونسيكوريتي Update for SQL Server 2014 Service Pack 1  يتضمن هذا التحديث فقط الحل المهم هذا.

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

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

رسائل الخطافي قاعده بيانات متاثره حاليا ، إذا قمت بتشغيل DBCC تشيكدب بعد تطبيق هذا الإصلاح ، ستتلقى رسالة الخطا التالية:

الرسالة 5289 ، المستوي 16 ، الحالة 1 ، الخط 1 متفاوت الكولومنستوري الفهرس ' كسي ' علي الجدول t يحتوي علي قيمه بيانات واحده أو أكثر لا تتطابق مع قيم البيانات في قاموس. استعاده البيانات من نسخه احتياطيه.

في قاعده بيانات متاثره حاليا ، عندما تقوم بتشغيل استعلام يتفحص الجداول المتاثره بعد تطبيق هذا الإصلاح ، تتلقي رسالة الخطا التالية:

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

إذا ظهرت هذه الأخطاء ، فبامكانك حفظ بيانات أونكوروبتيد عن طريق تصدير البيانات الخاصة بالاعمده/الرووجروبس التي لا تتاثر ، ثم أعاده تحميل البيانات بعد إفلات فهرس الكولومنستوري المتفاوت أو إنشائه. يجب تمكين علامة التعقب 10207 لمنع ظهور الخطا 5288 والعودة إلى السلوك القديم لتخطي الرووجروبس التالفة. ملاحظه يتم إنشاء رسائل الخطا 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. تشير مجموعه نتائج فارغه إلى ان قاعده البيانات لا تتاثر.

  • قم بتنفيذ هذا الاستعلام خلال فتره لا يكون فيها اي نشاط يقوم بإنشاء رووجروبس جديده أو تغيير حاله رووجروبس الموجودة. علي سبيل المثال ، يمكن للانشطه التالية تعديل حاله رووجروبس: بناء الفهرس ، وأعاده تنظيم الفهرسة ، وادراج مجمع ، والضغط علي التخزين في المجموعة بالاضافه إلى العلامات الجماعية. قبل ان تقوم بتنفيذ الاستعلام ، يمكنك تعطيل مهمة المحركات الخاصة بمجموعه الخلفيات باستخدام علامة التتبع 634. استخدم هذا الأمر لتعطيل المهمة الخلفية: DBCC تراسيون (634,-1). بعد انتهاء تنفيذ الاستعلام ، تذكر أعاده تمكين المهمة الخلفية باستخدام الأمر: DBCC تراسيوف (634,-1). تاكد أيضا من عدم وجود الأوامر INSERT/BCP/SELECT المجمعة لادراج البيانات في الجداول التي تستخدم فهرس كولومنستوري بينما يكون هذا الاستعلام قيد التشغيل. من المستحسن استخدام هذه الخطوات لمنع الاستعلام من إرجاع false-بوسيتيفيس.

الحالة

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

هل تحتاج إلى مزيد من المساعدة؟

الخروج من الخيارات إضافية؟

استكشف مزايا الاشتراك، واستعرض الدورات التدريبية، وتعرف على كيفية تأمين جهازك، والمزيد.

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

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

ما مدى رضاك عن جودة اللغة؟
ما الذي أثّر في تجربتك؟
بالضغط على "إرسال"، سيتم استخدام ملاحظاتك لتحسين منتجات Microsoft وخدماتها. سيتمكن مسؤول تكنولوجيا المعلومات لديك من جمع هذه البيانات. بيان الخصوصية.

نشكرك على ملاحظاتك!

×