سؤال

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

Table2:أي أمل في تطبيع خرج من النافذة على تكسير هذا الطفل المفتوحة.لدينا صف واحد لكل إدخال وتحديث الصفوف في الجدول.حتى مكررة مثل ليس هناك غدا (800MB يستحق) و الأعمدة مثل 1 مزايا مرافقة لهاتفك Phone2 Phone3 4 ...Phone15 (هم لا يسمى الهاتف.أنا استخدم هذا التوضيح) على foriegn key هو..وكذلك اتخاذ تخمين.هناك ثلاثة مرشحين اعتمادا على أي نوع من البيانات في الصف في جدول1

Table3:يمكن الحصول على أي أسوأ من ذلك.أوه نعم."الأجنبية الرئيسية هو VARCHAR عمود مزيج من شرطات, النقاط, الأرقام و الحروف!إذا لم نقدم مباراة (التي غالبا لا) ثم العمود الثاني مماثلة رمز المنتج يجب.الأعمدة التي لها الأسماء التي تحمل أي ارتباط البيانات داخلها, و اجبة 1 مزايا مرافقة لهاتفك Phone2 Phone3 4...Phone15.هناك أعمدة مكررة من جدول1 وليس الزمني أو عمود المفتاح الأساسي في الأفق.

Table4:وقد وصفت العمل في progess عرضة للتغيير في أي لحظة.فمن essentailly simlar إلى الآخرين.

على مقربة من 1m الصفوف هذا هو فوضى كبيرة.لحسن الحظ أنها ليست فوضى كبيرة.الجزائريين يجب أن تنسحب من هذا خاماتها سجل كل من "العملاء".

في البداية أنا وضعت أربعة الخطوة ترجمة جدول1 إضافة مفتاح أساسي و تحويل جميع التواريخ في للفرز الشكل.ثم بضع خطوات أكثر من الاستفسارات التي عاد البيانات المصفاة حتى كان جدول1 إلى حيث أنا يمكن استخدامه لسحب من الجداول الأخرى لتشكيل خاماتها.بعد أسابيع من العمل لدي هذا إلى خطوة واحدة باستخدام بعض الحيل.حتى الآن أنا يمكن أن نشير بلدي التطبيق في الفوضى وسحب لطيفة نظيفة جدول تتكون البيانات.لحسن الحظ أنا في حاجة واحدة فقط من أرقام الهاتف لأغراض بلدي حتى تطبيع طاولتي ليست قضية.

ولكن هذا هو المكان الحقيقي المهمة تبدأ ، لأن كل يوم مئات من الموظفين إضافة/تحديث/حذف قاعدة البيانات هذه في الطرق التي لا تريد أن تتخيل كل ليلة يجب أن استرداد الصفوف الجديدة.

منذ الصفوف الموجودة في أي من الجداول يمكن تغييرها ، و حيث لا توجد الزمني على تحديث الأعمدة سوف تضطر إلى اللجوء إلى سجلات لمعرفة ما حدث.طبعا هذا يفترض أن هناك سجل ثنائية ، والتي ليس هناك!

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

الوضع حساس قليلا كما لديهم بعض المعلومات القيمة التي شركتي يريد بشدة.كنت أنزل من قبل الإدارة العليا في شركة كبيرة (أنت تعرف كيف هم) أن "تحقيق ذلك".

لا أستطيع التفكير في أي طريقة أخرى للتعامل مع التحديثات ليلا من تحليل بن log مع بعد تطبيق آخر ، لمعرفة ما قاموا به إلى قاعدة البيانات أثناء النهار ثم مركب بلدي الجدول وفقا لذلك.أنا حقا بحاجة فقط للنظر في جدول1 إلى معرفة ما يجب القيام به إلى طاولتي.الجداول الأخرى مجرد توفير مجالات لطرد سجل.(باستخدام سيد الرقيق لن يساعد لأنني سوف يكون نسخة مكررة من الفوضى.)

البديل هو إنشاء تجزئة فريدة من نوعها لكل صف من جدول1 و بناء جدول تجزئة.ثم أود أن تذهب من خلال قاعدة البيانات بأكملها في كل ليلة التحقق لمعرفة ما إذا كان hashs المباراة.إذا لم يكن ثم أود أن قراءة هذا السجل والتحقق إذا كان موجودا في قاعدة البيانات إذا كان لا ثم أود أن التحديث في قاعدة البيانات إذا كان لا ثم سجل جديد و أود أن أدخله.هذا هو قبيح و ليس سريع ولكن تحليل ملف سجل ثنائي ليست جميلة أيضا.

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

أفكارك سيكون موضع تقدير كبير.

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

المحلول

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

نصائح أخرى

أنا لست الخلية الشخص ، لذلك هذا هو الخروج من ترك الميدان.

ولكن أعتقد ملفات السجل قد يكون الجواب.

الحمد لله, كنت حقا بحاجة فقط إلى معرفة الأشياء 2 من السجل.

كنت في حاجة إلى تسجيل/rowid و تحتاج العملية.

في معظم ديسيبل, و أفترض الخلية ، هناك ضمني عمود في كل صف مثل rowid أو recordid ، أو أيا كان.إنه الداخلية رقم الصف المستخدمة من قبل قاعدة البيانات.وهذا هو الخاص بك "الحرة" المفتاح الأساسي.

تحتاج بعد العملية.ولا سيما ما إذا كان إدراج أو تحديث أو حذف العملية على التوالي.

قمت بتجميع كل هذه المعلومات في وقت النظام ثم تشغيل من خلال ذلك.

لكل إدراج/تحديث حدد الصف من الأصلي ديسيبل ، و إدراج/تحديث صف في الوجهة الخاص بك ديسيبل.إذا كان حذف ثم حذف الصف.

أنت لا تهتم مجال القيم ، هم فقط غير مهم.كل صف.

كنت آمل ألا يكون "تحليل" الثنائية ملفات الدخول, الخلية يجب أن يكون بالفعل إجراءات للقيام بذلك, تحتاج فقط إلى العثور على معرفة كيفية استخدامها (قد يكون هناك حتى بعض مفيد "تفريغ سجل" الأداة المساعدة التي يمكن أن تستخدمها).

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

ومن الواضح أن هذا يأخذ قليلا غامضة المعرفة في النظام فعلا قراءة ملفات السجل ، ولكن بقية ينبغي أن تكون واضحة.أود أن أعتقد أن ملفات السجل وقتية كذلك, حتى يمكنك أن تعرف أن العمل على الصفوف "من اليوم" ، أو أيا كان تاريخ مجموعة تريد.

لا يمكنك استخدام التعليمات البرمجية الموجودة والتي بالوصول إلى قاعدة البيانات هذه و تكييفه مع الاحتياجات الخاصة بك ؟ طبعا الكود يجب أن يكون الرهيبة ، لكنه قد التعامل مع بنية قاعدة البيانات بالنسبة لك ؟ هل يمكن أن نأمل أن تركز على الحصول على عملك عمله بدلا من اللعب الآثار ثم.

كنت قد تكون قادرة على استخدام maatkit عضو الكنيست-الجدول-أداة مزامنة لمزامنة انطلاق قاعدة البيانات (قاعدة البيانات الخاصة بك هو فقط صغير جدا, بعد كل شيء).هذا سوف "تكرار الفوضى"

ثم يمكن أن أكتب شيئا بعد المزامنة ، فهل مختلف الاستفسارات إلى توليد مجموعة من أكثر عاقل الجداول التي يمكنك ثم تقرير قبالة.

أتصور أن هذا يمكن القيام به على أساس يومي دون مشكلة الأداء.

تفعل كل شيء بطريقة مختلفة خادم تجنب تؤثر على قاعدة البيانات الأصلية.

المشكلة الوحيدة التي أستطيع أن أرى إذا كان بعض الجداول لا تملك المفاتيح الأساسية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top