سؤال

لدي جدول تقويم مع حوالي 2K صفوف. هذا هو جدول بحث ، وسيتم استخدامه في العديد من الوصلات.

الأعمدة

CalendarId (PK, Clustered)
DateTimeValue
IsWeekDay
IsWeekend
IsHoliday

سؤالي هو: أريد أن أحصل على فهرس على DateTimeValue.

متى يجب علي إنشاء هذا الفهرس؟

بمعنى آخر ، ما مدى حجم الجدول قبل أن تضع فهرسًا عليه؟

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

المحلول

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

لا يزال الفهرس المفقود على جدول فارغ فهرس مفقود.

نصائح أخرى

تريد أن تتأكد من أن لديك فهرسًا على الأشياء حسب الحاجة ، فأنت لا تريد "الانتظار" حتى تصبح مشكلة .... بحلول تلك المرحلة ، لقد أهدرت الوقت.

ولكن في الوقت نفسه ، لا تنشئ فهرسًا فقط من أجل إنشاء واحد ، تأكد من أنه من المنطقي للتطبيق.

على سبيل المثال ، بناءً على عمليتك ، أعتقد أنك قد تكون "أكثر كفاءة" في التجمع في DateTimeValue ، حيث أظن أن لديك إدخال واحد يوميًا.

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

أعتقد أن "DateTimeValue" سيكون المفتاح الطبيعي في هذا الجدول؟ يجب أن يكون له فهرس فريد من البداية.

فيما يتعلق بالمجالات الأخرى ، من غير المحتمل أن يتم استخدام الفهارس في Isweekday أو Isweekend من قبل المُحسِّن نظرًا لأنها منخفضة الانتقائية (يعود Isweekday 71 ٪ من الصفوف).

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

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