لا soCaseInsensitive تؤثر بشكل كبير أداء TdxMemIndex على TdxMemDataset?

StackOverflow https://stackoverflow.com/questions/651264

سؤال

انا إضافة بعض الفهارس إلى DevExpress TdxMemDataset لتحسين الأداء.على TdxMemIndex وقد SortOptions والتي تشمل خيار soCaseInsensitive.البيانات عادة ما تكون سلسلة المعرف الفريد العمومي ، حتى أنها ليست حساسة لحالة الأحرف.وأنا أتساءل عما إذا كان أنا أفضل حالا مجرد إجبار جميع البيانات إلى نفس الحالة أو إذا كان soCaseInsensitive العلم باستخدام loCaseInsensitive العلم مع الدعوة إلى تحديد فقط قاصر الأداء جزاء (ما يعادل تقريبا تحويل القضية من سلسلة بلدي في كل مرة كنت بحاجة إلى استخدام الفهرس).

عند هذه النقطة أنا ترك CaseInsentive فقط تحويل القضية.

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

المحلول

IMHO, الأفضل لضمان جودة البيانات في وقت آخر.التفكر:

  1. أنت (عادة) تعرف طبيعة البيانات.هكذا, على سبيل المثال.يمكنك استخدام الأحرف الكبيرة (مع العلم أن Guid في ASCII مجموعة) بدلا من كثيرا أبطأ AnsiUpperCase عام مكون مثل TdxMemDataSet اضطر إلى استخدام.

  2. يمكنك إدخال البيانات مرة واحدة فقط.البحث/فرز/تصفية جميع يعني الداخلية upercassing محرك TdxMemDataSet انها تتكرر العمل.أيضا ، هناك البعض بالسلاسل الإجراءات التي تؤدي هذا المحرك وتوت تحقيق.(على سبيل المثال.أ TcxGrid التي يتم فرز افتراضي وجود GridMode:=صحيح (أنا افترض أن استخدام DevEx.مكونات) وجود فئة تتصرف مثل وسيط تمرير نوع الرسالة الأساسية dataset.

  3. عادة إدخال البيانات يتم في الخطوات واحدة أو عدة سجلات في دفعة واحدة.والاستثناء الوحيد الملحوظ هو البيانات اقتناء التطبيقات.ولكن في كلتا الحالتين أعلاه للمستخدم سهولة الاستخدام ثقافة تسمح طريقة أكبر رد الأوقات بالنسبة لك للعب مع.(IOW كم سيكون إضافة كبيرة استدعاء سجل المنصب الذي يستمر 0.005 ms؟) OTOH المستخدمين صعبة جدا مع سرعة البيانات retreival العمليات (البحث والفرز والتصفية.... الخ).الحفاظ على البيانات retreival بأسرع ما يمكن.

  4. وجود البيانات في قاعدة البيانات على استعداد لفضح يقلل من خطر معالجة الأخطاء عندما كنت أكتب (إذا عليك كتابة) وحدات أخرى (عليك أن تتذكر أن AnsiUpperCase البيانات في أية وحدة نمطية في أي لغة كنت أكتب).هنا أيضا مثالا هو عندما كنت سوف تستخدم الخارجية الأخرى أدوات الوصول إلى البيانات (على سبيل المثال.db مديري تنفيذ SQL SELCT على البيانات).

hth.

نصائح أخرى

ربما DevExpress المنتديات (أو أي دعم البريد الإلكتروني إذا كان لديك الوصول إلى ذلك) سيكون أفضل مكان للحصول على حجية الإجابة على هذا الأداء السؤال.

على كل حال هو أفضل ضمان أن البيانات هي على الشكل الذي تريد - للأسباب plainth بالفعل شرح لحظة حفظه.حتى في تلك المحددة ، تأكد GUID هو مكتوب في الأعلى(أو أقل ، مسألة ذوق)حالة.إذا كان SQL Server أو قاعدة بيانات أخرى الخادم التي guid نوع البيانات ، تأكد من تحديد تجعل العمل إذا تنطبق ممكن, حتى هذا النوع.

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