سلام

مساله:
1- فرض کنید حدود 500،000 قطعه داریم و برای هر قطعه بین 20 تا 30 عملیات باید انجام شود و هر عملیات ممکن است بیش از یک مرتبه تکرار شود.
2- با توجه به اینکه هر یک از عملیت‌ها داده‌های متفاوتی دارند، برای هر عملیات یک جدول طراحی شده است.
3- در انتها باید یک خروجی با نام Status داشته باشم که چندین ستون در خصوص مشخصات خود قطعه است و ستون‌های دیگر حدود 3 ستون از هر جداول (عملیات‌های مربوطه) باید اضافه شوند.

راه حل:

1- میشه در زمان تولید گزارش، جدول قطعات را با سایر جداول بصورت Left Join تولید کرد. البته Join کردن باید با آخرین عملیات انجام بشه:
select Parts.*, A.Column1, A.Column2, A.Column3 from Parts 
left join (select top 1 * from operationA where Id = Parts.Id order by CreateDateTime desc) as A on Parts.Id = A.PartId

2- میشه یک جدول Status ایجاد کرد و در زمان ثبت فعالیت‌های هر قطعه، ستون‌های متناسب با هر فعالیت را مقدار دهی کرد و در زمان گزارش تقریبا داده‌ها آماده ارائه هستند.

سوال:
با توجه به تعداد بالای قطعات و وابستگیعملیات‌های زیاد با جدول قطعه، چه راه کاری مناسب‌تر است؟ در این مساله سرعت برای من اولویت هستش.

تشکر