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