আমাদের কাছে এই বিশাল ডাটাবেস (> 1 টিবি) রয়েছে যা আমরা "সঙ্কুচিত" করতে চাইছি। ডাটাবেসটি একটি প্রধান সত্তার চারদিকে ঘোরে, আসুন একে "ভিজিট" বলুন। আলোচনার জন্য, ধরা যাক এটি চিকিত্সা অনুশীলনের জন্য একটি ডাটাবেস।
মোট 30 টি পরিদর্শন "প্রকার" রয়েছে, যেমন পদ্ধতি, বার্ষিক, ফলো-আপ, টিকাদান ইত্যাদি, যার প্রতিটি "ভিজিট" এর জন্য সহায়ক টেবিল, যেমন "ভিজিট_মুনো"।
2000 সাল থেকে ডাটাবেসটি 12 বছরের ডেটা সংগ্রহ করেছে Someone কেউ প্রস্তাব দিয়েছেন যে আমরা "লাইভ" সংস্করণে প্রায় 3 বছরের ডেটা রাখি এবং বাকী একটি "ওল্ড_ডাটা" ডাটাবেসে লাইভ রাখি। তারিখটি কেবলমাত্র "ভিজিট" টেবিলটিতে সঞ্চিত রয়েছে যেহেতু এটি স্বাভাবিক করা হয়েছে। ভিজিট টেবিলটিতে একটি ROWVERSIONকলাম এবং BIGINTছদ্ম-পরিচয় (ক্লাস্টারড) কলামও রয়েছে। সমস্ত অভিপ্রায় এবং উদ্দেশ্যগুলির জন্য, আসুন বলি যে ক্লাস্টারিং কীটি একটি সিকোয়েন্স (এসকিউএল সার্ভার 2012 এন্টারপ্রাইজ) দ্বারা পপুলেটেড - আমরা এটির নাম দেব cid।
visit.dateযখন একজন ডাক্তার বর্ধিত visitations এবং তার তথ্য "ব্রিফকেস" সঙ্গে আয় যায় ক্লাস্টারিং কী, উদাহরণ হিসেবে একই আদেশ সবসময় নয়, এটা প্রধান টেবিল মধ্যে মিশে গিয়ে তৈরি হয়। এছাড়াও এখানে "দর্শন" টেবিল থেকে কিছু আপডেট যে কারণ হবে হয় ROWVERSIONকলামে সাথে সিঙ্কের বাইরে হতে cidএবং dateকেবল এটা করা, তন্ন তন্ন - কলাম ROWVERSIONকিংবা cidএই কারণে উপযুক্ত পার্টিশন কী করতে হবে।
"লাইভ" থেকে ডেটা অপসারণের ব্যবসায়ের নিয়মটি হ'ল visit.date36 মাসের বেশি হওয়া উচিত এবং শিশু visit_paymentরেকর্ড থাকা আবশ্যক। এছাড়াও, "ওল্ড_ডাটা" ডাটাবেসে ব্যাস টেবিলগুলি বাদ দিয়ে আর কোনও কিছু থাকে না visit%।
সুতরাং আমরা এখানে দিয়ে শেষ:
লাইভ ডিবি (দৈনন্দিন ব্যবহার) - সমস্ত টেবিলগুলি পুরানো ডেটা ডিবি - visit%টেবিলগুলির জন্য পুরানো ডেটা
একটি সম্মিলিত ডিবি যে ধারণকারী একটি শেল জন্য প্রস্তাব কল প্রতিশব্দ সমস্ত বেস সারণীগুলিতে Live DB(-setup visit%) প্লাস দেখেছে যে ইউনিয়ন জুড়ে visit%দুই ডাটাবেস টেবিল।
ধরে নিই Old-Dataডিবিতে একই সূচি তৈরি করা হয়েছে , প্রশ্নগুলি কি ইউনিয়ন-সমস্ত দৃষ্টিভঙ্গিতে ভাল সম্পাদন করবে ? কোন ধরণের ক্যোয়ারী নিদর্শনগুলি ইউনিয়ন-সমস্ত দর্শনগুলির জন্য কার্যকর পরিকল্পনাটি ট্রিপ করতে পারে ?