دوست عزیزم،
پارتیشن کردن اطلاعات، یک کار شناخته شده و کاملا اصولی هستش و SQL Server با امکاناتی که فراهم میکنه، به شما در این کار کمک خواهد کرد. اگر شما به طور صحیح و علمی دنبال این موضوع هستین، باید در مورد OLAP مطالعه بفرمایید(در BOL وجود داره)
آرشیو کردن اطلاعات در پایان هر سال باعث میشه که جداول اصلی شما کم حجم و جوان بشن که نتیجتا عمل ویرایش و Queryهای مربوط به سال جاری، بسیار سریع میشن.
ولی برای گزارش کلی از تمام سالها، میتونین Viewهای طراحی کنین که اطلاعات سالهای قبل رو هم جمع آوری کنه.
Creating and Maintaining Databases > Views > Creating a View > Creating a Partitioned View
Analysis Services > Analysis Services Architecture > Object Architecture > Partitions > Introduction to Partitions
این قسمتهای در BOL میتونن نقطه خوبی برای شروع باشند.
در مورد تعداد رکوردها، SQL Server هیچ محدودیتی برای شما ایجاد نمیکنه مگر اینکه سخت افزار شما رو محدود کنه (مثلا حجم هارد دیسک). در صورتی که Indexهای مناسب داشته باشید، همیشه Performance خواهید داشت. زمانی که حجم اطلاعات خیلی زیاد باشه، Partition کردن مطرح میشه.
موفق باشید