هل هناك طريقة فعالة لحذف كل عرض / وظيفة / الجدول / ليرة سورية من قاعدة بيانات?

StackOverflow https://stackoverflow.com/questions/6014919

  •  14-11-2019
  •  | 
  •  

سؤال

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

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

سيكون نهج القوة الغاشمة هو تشغيل القطرات في حلقة حتى تنجح جميعها ، ولكن اعتمادا على الترتيب (محظوظ أم لا) ، قد يستغرق الأمر وقتا طويلا جدا.

هل تعرف طريقة لطلب بيان الإسقاط بكفاءة بحيث يكون الوقت الإجمالي للحذف هو أقصر وقت ممكن?

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

يعطيكم الصّحة

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

المحلول 2

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

مشكلة، فهي بطيئة للغاية ...

تحرير: كان هناك خطأ مطبعي في الاستعلام الذي جعله يعود بيانات أكثر أو أقل تصحيحا ولكن ببطء شديد. giveacodicetagpre.

نصائح أخرى

قد ترغب في رؤية مراجع كل جدول (والتي يمكنك القيام بها syscat.references وفقا ل http://www.ibm.com/developerworks/data/library/techarticle/dm-0401melnyk/) وبنيت شجرة التبعيات بنفسك (يجب أن تكون قابلة للتنفيذ على سبيل المثال.مع الجداول المؤقتة ، إذا كنت مقيدا إلى سكل فقط).ثم قد تسقط من أسفل تلك الشجرة.

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

قد ترغب أيضا في رؤية هذا (مماثل?) سؤال: دي بي 2 تتالي حذف الأمر? في حال كنت تريد حذف البيانات أولا.

إذا كنت مخطئا في مرحلة ما ، يرجى تصحيح.وتستند هذه الإجابة على تجربتي مع قواعد البيانات الأخرى ، وبالتالي قد لا تكون مناسبة تماما ل دب2.على الرغم من أنه يجب أن يعمل؛)

لم أفعل حل مباشر ل DB2، لكن يمكنني اقتراح ذلك:

a) في Microsoft SQL Server 2008، تم حل المشكلة للحذف (وليس إسقاط) الجداول فيما يتعلق بترتيب مفاتيح الأجنبية، في هذا الرابط:

توليد بيان حذف من الخارج العلاقات الرئيسية في SQL 2008؟

b) في Oracle pl / sql، تم حل المشكلة لحذفها (وليس إسقاط) فيما يتعلق بطلب مفاتيح أجنبية، في هذا الرابط:

كيف لتوليد بيانات حذف في PL / SQL، بناء على العلاقات الجداول FK؟

أعتقد أنه يمكنك ترتيب أحد هذين البرامج النصية، من أجل الحصول على حل DB2.

هل توافق أم لا؟

تحرير 1: في هذا الرابط:

http://bytes.com/topic/db2 / الإجابات / 183189-كيفية حذف الطاولات - تماما

يمكنني قراءة:

روبرت، لماذا لا ببساطة giveacodicetagpre.

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

تحرير 2: يرجى ملاحظة ما يلي:

href="https://stackoverflow.com/questions/614976/dropping-a-schema-and-all-of-contents-in-db2-8-x"> إسقاط مخطط وجميع محتوياته في DB2 8.x

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