ستقدم هذه المقالة مشكلة عملية غالبًا ما يواجهها المسؤولون أثناء عملية تهيئة قاعدة البيانات - وهي كيفية استيراد كميات كبيرة من البيانات إلى نظام قاعدة البيانات. أثناء عملية تهيئة قاعدة البيانات، هناك مشكلة عملية يتعين على المسؤولين مواجهتها وهي كيفية استيراد كميات كبيرة من البيانات إلى نظام قاعدة البيانات. يتم توفير بعض أدوات استيراد وتصدير البيانات ذات السعة الكبيرة في قاعدة بيانات SQL Server ليستخدمها مسؤولو قواعد البيانات. على سبيل المثال، يمكن للمسؤولين استخدام الأداة المساعدة bcp لتصدير البيانات بكميات كبيرة واستيراد البيانات بكميات كبيرة وإنشاء ملفات منسقة. على سبيل المثال، يمكن استخدام عبارات الإدراج المجمعة لاستيراد بيانات ذات سعة كبيرة مباشرة من ملفات البيانات إلى جداول قاعدة البيانات أو طرق العرض غير المقسمة، وما إلى ذلك.
على الرغم من توفير هذه الأدوات المساعدة في قاعدة بيانات SQL Server. ومع ذلك، لا يزال يتعين على المسؤولين توخي الحذر بشأن هذا العمل في العمل الفعلي. على وجه التحديد، أثناء عملية استيراد وتصدير البيانات ذات السعة الكبيرة، عليك الانتباه إلى الجوانب التالية.
1. حاول استخدام الأدوات التي يوفرها النظام لاستيراد وتصدير البيانات ذات السعة الكبيرة.
تتميز الأدوات العملية العديدة التي ذكرها المؤلف أعلاه بميزة مشتركة، وهي أنها ستقوم بإجراء تحسينات معينة على البيانات ذات السعة الكبيرة أثناء عملية الاستيراد. على سبيل المثال، سيتم توحيد تنسيق بعض البيانات، وتوفير الوقت في الاستيراد والتصدير، وما إلى ذلك. ومع ذلك، عند استخدام هذه الأدوات، هناك اختلاف واحد عن أدوات استيراد وتصدير البيانات العادية الأخرى، وهو أن عمليات الاستيراد ذات السعة الكبيرة لا تدعم استيراد البيانات في ملفات مفصولة بفواصل، والتي غالبًا ما يشار إليها باسم الملفات النصية. على الرغم من أنه يمكن للمسؤول أيضًا استخدام أدوات أخرى لاستيراد بيانات ذات سعة كبيرة بتنسيق ملف في الوقت الحالي، إلا أنني لا أوصي بذلك بشكل عام. لأن الأدوات الأخرى لا تدعم وظيفة التحسين أثناء عملية الاستيراد. ولهذا السبب، يوصي المؤلف باستخدام أدوات أخرى، مثل ACCESS والأدوات الوسيطة الأخرى، لتحويل البيانات الموجودة في الملف النصي أولاً إلى نموذج جدول عادي، ثم استخدام الأدوات المذكورة أعلاه لاستيرادها إلى النظام. على الرغم من أن هذا سيزيد من عبء العمل، إلا أنه يمكن أن يضمن جودة البيانات ذات السعة الكبيرة. لهذا السبب، في عملي الفعلي، إذا واجه المستخدمون هذا النوع من المشكلات، أوصي بشدة باستخدام الأدوات التي يوفرها النظام لاستيراد وتصدير البيانات ذات السعة الكبيرة.
بالإضافة إلى ذلك، يعد استخدام الملفات المنسقة لتحسين توحيد البيانات ذات السعة الكبيرة خيارًا جيدًا أيضًا. تدعم العديد من أدوات الاستيراد والتصدير ذات السعة الكبيرة المذكورة أعلاه استخدام ملفات التنسيق المتخصصة لتخزين معلومات التنسيق لكل حقل في ملف البيانات الأصلي. يمكن أن يحتوي ملف التنسيق أيضًا على معلومات حول جدول قاعدة البيانات المقابل. يمكن استخدام ملفات التنسيق لتوفير كافة معلومات التنسيق اللازمة لتصدير البيانات بشكل مجمّع واستيراد البيانات بشكل مجمّع إلى مثيل قاعدة البيانات. في مصطلحات الشخص العادي، يوفر ملف التنسيق طريقة مرنة لتفسير تنسيق البيانات في ملف بيانات أثناء الاستيراد وتنسيق البيانات في ملف بيانات أثناء التصدير. تلغي هذه المرونة الحاجة إلى كتابة تعليمات برمجية متخصصة لتفسير البيانات أو إعادة تنسيق البيانات لتلبية الاحتياجات الخاصة لقاعدة البيانات أو التطبيق الخارجي. إذا تم استخدام الملفات المنسقة بمرونة، فيمكن للمستخدمين تصدير أو استيراد بيانات ذات سعة كبيرة بالتنسيق المطلوب مباشرة دون الحاجة إلى إجراء تعديلات إضافية على التنسيق بعد ذلك.
2. حدد وضع تشغيل سجل قاعدة البيانات المناسب
وكما يعلم الجميع، سيتم تسجيل أي تغييرات يجريها المستخدمون في قاعدة البيانات في السجلات ذات الصلة. استيراد وتصدير كميات كبيرة من البيانات ليس استثناءً. ومع ذلك، نظرًا لأن البيانات ذات السعة الكبيرة كبيرة نسبيًا، فإنها ستشغل وظيفة سجل معاملات كبيرة نسبيًا. لهذا السبب، يوصي المؤلف أنه قبل قيام المستخدمين باستيراد بيانات ذات سعة كبيرة، من الأفضل اختيار وضع تشغيل سجل قاعدة البيانات المناسب. نهج المؤلف هو أنه إذا كان المستخدم يحتاج إلى استيراد بيانات ذات سعة كبيرة، فمن الأفضل اختيار وضع استرداد السجل ذو السعة الكبيرة. انتظر حتى تكتمل عملية الاستيراد، ثم عد إلى الوضع الأصلي.
ويرجع ذلك أساسًا إلى أنه في وضع السجل ذو السعة الكبيرة، يكون دعم أعمال استيراد البيانات ذات السعة الكبيرة جيدًا نسبيًا. بالمقارنة مع نماذج الاسترداد المسجلة الأخرى (مثل نموذج الاسترداد الكامل)، فإن نموذج الاسترداد المسجل بشكل مجمع يسجل الحد الأدنى فقط من العمليات المجمعة. لهذا السبب، يعمل نموذج استرداد عملية السجل ذات السعة الكبيرة على حماية العمليات كبيرة الحجم من فشل الأجهزة، ويوفر أداءً أفضل، ويشغل الحد الأدنى من مساحة السجل. ولذلك، فإن استخدام الاسترداد المُسجل بشكل مجمع يساعد على منع نفاد مساحة سجلات المعاملات لأن الاسترداد المُسجل بشكل مجمع لا يقوم بإدراج أسطر السجل. يعد وضع تشغيل السجل المجمع هذا مناسبًا جدًا لقواعد البيانات التي تستخدم نموذج الاسترداد الكامل. يُعد نموذج الاسترداد المُسجل بشكل مجمع مفيدًا عند إجراء عمليات مجمعة على جداول أقل فهرسًا.
ومع ذلك، فإن وضع تشغيل السجل ذو السعة الكبيرة ينطوي أيضًا على مخاطر معينة. يزيد نموذج الاسترداد مثل السجل المجمع من خطر فقدان البيانات لعمليات النسخ المجمعة هذه. لأن وضع التشغيل المجمع سيمنع نظام قاعدة البيانات من التقاط التغييرات التي تم إجراؤها على كل معاملة واحدة تلو الأخرى. إذا كانت النسخة الاحتياطية للسجل تحتوي على عمليات سجل مجمعة، فلا يمكنك استعادة نقطة زمنية في النسخة الاحتياطية للسجل؛ يمكنك فقط استعادة النسخة الاحتياطية للسجل بالكامل. وفي نموذج الاسترداد المُسجل بشكل مجمع أيضًا، إذا كانت النسخة الاحتياطية للسجل تغطي أي عمليات مجمعة، فسوف تحتوي النسخة الاحتياطية للسجل على سجلات السجل وصفحات البيانات التي تم تغييرها بواسطة العمليات المجمعة. وهذا أمر بالغ الأهمية لالتقاط نتائج عمليات التسجيل المجمعة. يمكن لمناطق البيانات المدمجة أن تجعل النسخ الاحتياطية للسجل كبيرة جدًا. علاوة على ذلك، يتطلب النسخ الاحتياطي للسجلات الوصول إلى ملفات البيانات التي تحتوي على كميات كبيرة من معاملات السجل. إذا تعذر الوصول إلى أي ملفات قاعدة بيانات متأثرة، فلن يتم عمل نسخة احتياطية من سجل المعاملات وسيتم فقدان جميع العمليات التي تم تنفيذها في هذا السجل. ولذلك، فإن وضع النسخ الاحتياطي للسجل ذو السعة الكبيرة ليس وضع سجل آمن.
3. فكر فيما إذا كنت بحاجة إلى حذف فهرس الجدول مؤقتًا أولاً
الفهرس عبارة عن ملف خاص، ودوره في قاعدة البيانات مهم جدًا. بكل بساطة، إذا تمت مقارنة قاعدة البيانات بكتاب، فإن الفهرس يشبه جدول محتويات الكتاب. يحتوي الفهرس على مؤشرات مرجعية لجميع السجلات في جدول البيانات. ليس هناك شك في أن الفهارس يمكنها تحسين أداء قاعدة البيانات. لكن الفهرسة لا يمكن أن يكون لها تأثير إيجابي في كل مناسبة. وفي بعض الحالات الخاصة، سيؤدي ذلك إلى تقليل أداء بعض العمليات، مثل استيراد البيانات ذات السعة الكبيرة.
يمكن للفهرس تسريع عمليات استرداد البيانات، ولكنه يمكن أن يجعل عمليات تعديل البيانات أبطأ. لأنه في كل مرة يتم فيها تعديل سجل بيانات أو إدراجه، يجب تحديث الفهرس. بمعنى آخر، إذا تم إدراج مليون سجل، فيجب تحديث الفهرس مليون مرة. يمكن ملاحظة أنه عند استيراد بيانات ذات سعة كبيرة، سيستهلك الفهرس الكثير من موارد قاعدة البيانات، مما يقلل من أداء قاعدة البيانات. إذا كانت هناك فهارس في الجدول الوجهة، فلن يؤثر ذلك على سرعة استيراد البيانات كبيرة الحجم إلى قاعدة البيانات فحسب، بل سيقلل أيضًا من أداء الوصول العادي للمستخدمين الآخرين إلى قاعدة البيانات.
ولهذا السبب، يقترح المؤلف أنه إذا لم يكن هناك الكثير من البيانات المراد استيرادها في الجدول، فمن الأفضل حذف الفهرس أولاً لتحسين أداء استيراد البيانات ذات السعة الكبيرة. إعادة تمكين الفهرسة بعد الاستيراد. ومع ذلك، إذا كان هناك بالفعل الكثير من البيانات التي يجب استيرادها في الجدول، وقد تكون البيانات التي يجب استيرادها مشابهة أو أقل من البيانات الموجودة، فليست هناك حاجة لحذف الفهرس. سيكون لحذف الفهرس في هذا الوقت تأثير عكسي. لأن الوقت الذي يستغرقه نظام قاعدة البيانات لإعادة إنشاء الفهارس قد يكون أطول من الوقت الموفر أثناء عملية الاستيراد المجمعة. في هذا الوقت، سيخسر المسؤول أكثر من المكاسب عن طريق حذف فهرس الجدول الهدف.
4. قم بإجراء النسخ الاحتياطي لقاعدة البيانات مباشرة بعد استيراد البيانات
تمامًا مثل إنشاء كائنات قاعدة البيانات، بعد استيراد البيانات ذات السعة الكبيرة إلى نظام قاعدة البيانات، يجب على المسؤولين إجراء نسخ احتياطي لقاعدة البيانات الموجودة في الوقت المناسب. نظرًا للمساعدة في الوقت المناسب من أدوات الاستيراد ذات السعة الكبيرة للنظام، لا يزال عمل استيراد البيانات هذا شاقًا للغاية ويستغرق وقتًا طويلاً. لهذا السبب، بعد استيراد البيانات ذات السعة الكبيرة بنجاح إلى نظام قاعدة البيانات، يجب على المسؤول إجراء نسخ احتياطي لقاعدة البيانات في الوقت المناسب. ما يريد المؤلف تذكير الجميع به هنا هو أن طرق النسخ الاحتياطي غالبًا ما تختلف باختلاف أوضاع سجل العمليات.
بعد استيراد البيانات ذات السعة الكبيرة، يحتاج المسؤولون إلى عمل نسخة احتياطية من قاعدة البيانات. اقتراح المؤلف هو أنه إذا اعتمد المسؤول نموذجًا بسيطًا لاستعادة السجل في ذلك الوقت، فيجب على المسؤول إجراء نسخة احتياطية كاملة أو نسخ احتياطي تفاضلي فور اكتمال عملية الاستيراد المجمع (إذا سمح الوقت، فمن الأفضل إجراء نسخة احتياطية كاملة). . وإذا اعتمد مسؤول قاعدة البيانات نموذج استرداد السجل ذو السعة الكبيرة أو نموذج الاسترداد الكامل في ذلك الوقت، وإذا لم يكن هناك الكثير من الوقت أو كان قلقًا من أن النسخ الاحتياطي الكامل سيؤثر على وصول المستخدم في ذلك الوقت، فسيتم إجراء نسخة احتياطية للسجل فقط يكفي. إذا لم يصبح خادم قاعدة البيانات خادم إنتاج (أي أنه لا يوجد مستخدمون يستخدمونه بعد)، فمن الأكثر أمانًا إجراء نسخة احتياطية كاملة لقاعدة البيانات.
5. الأخطاء الشائعة
من المحتمل أن يكون هناك خطأان شائعان أثناء استيراد البيانات ذات السعة الكبيرة.
أولاً، تنسيق الملف المقدم غير صحيح. كما ذكر أعلاه، عادةً لا تدعم أداة الاستيراد المجمعة التي توفرها قاعدة البيانات الملفات النصية. يحتاج المسؤولون إلى إجراء تحويلات سابقة لهذا الغرض. ثانيًا، انتبه إلى أن الأحرف المخفية قد تسبب مشكلات. تعرض العديد من البرامج ومحرري النصوص أحرفًا مخفية. توجد هذه الأحرف المخفية عادةً في نهاية ملف البيانات. أثناء عمليات الاستيراد المجمعة، يمكن أن تتسبب الأحرف المخفية في ملفات البيانات في حدوث مشكلات غير متوقعة مثل أخطاء الأحرف الخالية غير المتوقعة وما إلى ذلك. من السهل تجنب هذا الخطأ. طالما أن مسؤول قاعدة البيانات يبحث عن جميع الأحرف المخفية ويزيلها قبل استيراد البيانات. في الواقع، ستتم مواجهة هذه المشكلة ليس فقط أثناء استيراد البيانات ذات السعة الكبيرة، ولكن أيضًا أثناء استيراد كميات صغيرة من البيانات.