سؤال

لدي جدول يحتوي على ثلاثة أعمدة:

المستخدم varchar حالة varchar مندوب الباحث

وضع مندوب الحصول على تحديث كثير من الأحيان واحدة من المتطلبات هي:

بالنظر إلى قيمة عرض حالة و مندوب القيم لكل مستخدم في تاريخ معين.

يمكنني إضافة updated_at التاريخ والوقت عمود إلى جدول إدراج صفوف جديدة مثال: نفس المستخدم بدلا من تحديث القائم منها ، ولكن الجدول يحصل كبيرة وأنا بحاجة إلى الانضمام إلى نتائج الاستعلام على نتائج مماثلة من الجداول الأخرى ، وبالتالي أحتاج استعلام سريع.

ما هو أفضل أداء حل هذه المشكلة في SQL Server?

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

المحلول

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

أنه سيكون من الأفضل إذا كنت حقا فقط من التقاط أيام محددة/المستخدمين/الأوضاع من تاريخ

نصائح أخرى

أود أن تخزين منفصلة ذات الصلة الجدول منذ افترض معظم الوقت سوف تكون الاستعلام عن الوضع الحالي عند الانضمام.إذا كنت سوف تفعل الكثير من هذا النوع من الاستعلام و إضافة هذا النوع من البيانات إلى العديد من الجداول ليس هذا فقط, وأود أن إنشاء منفصل بيانات OLAP لتقديم التقارير.

بالمناسبة طالما كنت تفعل هذا ، قد تنظر إذا كنت ترغب في تسجيل الذي جعل التغيير.ثم لديك بنيت في الأساس مراجعة الحل.

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

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