الدوال
حسّن الفهرس على LAST_NAME الأداء تحسناً كبيراً، لكنه يلزمك بالبحث بحالة الأحرف نفسها (كبيرة/صغيرة) المخزنة في قاعدة البيانات. ويشرح هذا القسم كيف ترفع هذا القيد دون انخفاض في الأداء.
Db2 (LUW)
تدعم Db2 الفهارس القائمة على الدوال على zOS منذ مدة، لكنها لا تدعمها على LUW إلا منذ الإصدار 10.5. ولا يُسمح باستخدام الدوال المعرّفة من المستخدم في الفهارس.
والحل الاحتياطي هو إنشاء عمود حقيقي في الجدول يحمل نتيجة الدالة أو التعبير. ويجب صيانة هذا العمود بواسطة مُشغِّل (trigger) أو طبقة التطبيق — أيهما أنسب. ويمكن فهرسة العمود الجديد، ويجب أن تستخدم جملة where العمود الجديد (دون التعبير).
MySQL
MySQL غير حسّاس لحالة الأحرف افتراضياً، لكن ذلك يمكن التحكم به على مستوى العمود. وبدءاً من الإصدار 5.7، تستطيع MySQL إنشاء فهارس على الأعمدة المولّدة.
والحل الاحتياطي للإصدارات الأقدم هو إنشاء عمود حقيقي في الجدول يحمل نتيجة الدالة أو التعبير. ويجب صيانة هذا العمود بواسطة مُشغِّل أو طبقة التطبيق — أيهما أنسب. ويمكن فهرسة العمود الجديد، ويجب أن تستخدم جملة where العمود الجديد (دون التعبير).
Oracle
تدعم قاعدة بيانات Oracle الفهارس القائمة على الدوال منذ الإصدار 8i، وأُضيفت الأعمدة الافتراضية مع الإصدار 11g.
PostgreSQL
يدعم PostgreSQL دعماً كاملاً لـالفهارس على التعبيرات منذ الإصدار 7.4 (ودعماً جزئياً منذ 7.2).
SQL Server
تدعم SQL Server الأعمدة المحسوبة التي يمكن فهرستها منذ الإصدار 2000.
المحتويات
- البحث غير الحسّاس لحالة الأحرف —
UPPERوLOWER - الدوال المعرّفة من المستخدم — قيود الفهارس القائمة على الدوال
- الإفراط في الفهرسة — تجنّب التكرار