Frage

Ich füge einige Indizes zu meinem DevExpress TdxMemDataset Leistung zu verbessern. Die TdxMemIndex hat sortOptions , die die Option beinhalten für soCaseInsensitive . Meine Daten sind in der Regel eine GUID-Zeichenfolge, so dass es nicht zwischen Groß- und Klein. Ich frage mich, ob ich besser bin weg, nur um den gleichen Fall alle Daten zu zwingen, oder wenn die soCaseInsensitive Flagge und mit dem loCaseInsensitive Fahne mit dem Anruf nur zu liegen hat eine geringe Leistungseinbuße (in etwa gleich den Fall meiner Zeichenfolge jedes Mal Umwandlung ich brauche den Index zu verwenden).

An diesem Punkt bin ich die CaseInsentive off verlassen und nur Fall konvertieren.

War es hilfreich?

Lösung

IMHO, Das Beste ist die Datenqualität im Post Zeit zu gewährleisten. Reasonings:

  1. Sie (in der Regel) kennen die Art der Daten. So, zum Beispiel. Sie können Uppercase (wohl wissend, dass GUIDs alle in ASCII-Bereich ist) anstelle von viel langsamer AnsiUpperCase die eine allgemeine Komponente wie TdxMemDataSet gezwungen ist, zu verwenden.

  2. Sie geben die Daten nur einmal. Suchen / Sortieren / Filtern, die alle internen upercassing Motor TdxMemDataSet impliziert es ist eine wiederholte Aktion. Auch gibt es andere verkettete Aktionen, die diesen Motor auslösen whithout zu realisieren. (ZB ein TcxGrid, die standardmäßig mit GRIDMODE sortiert ist:... = True (Ich gehe davon aus, dass Sie die Devex verwenden Komponenten) und eine Klasse Handeln wie ein Makler mit der Art-Nachricht an die zugrunde liegende Datenmenge vorbei

  3. Normalerweise sind die Dateneingabe in Schritten, eine oder wenige Datensätze in einer Charge. Die einzige bemerkenswerte Ausnahme ist Datenerfassungs- Anwendungen. Aber in beiden Fällen über die Verwendbarkeit Kultur des Benutzers erlaubt Weg mehr Antwortzeiten für Sie zu spielen. (IOW wie viel würde ein Groß Anruf auf ein Rekord Beitrag hinzufügen, die 0,005 ms dauert?) OTOH, werden die Benutzer sehr anspruchsvolle mit der Geschwindigkeit der Daten retreival Operationen (Suchen, Sortieren, Filtern etc.). Halten Sie die Daten retreival so schnell wie möglich.

  4. , um die Daten in der Datenbank zu haben bereit zu belichten reduziert das Risiko von Verarbeitungsfehlern, wenn Sie schreiben werden (, wenn Sie schreiben) weitere Module (Sie müssen sich daran erinnern die AnsiUpperCase Daten in jedem Modul in jeder Sprache, die Sie schreiben werden). Auch hier ein klassisches Beispiel ist, wenn Sie andere externe Tools verwenden werden, um auf die Daten zugreifen (zB. Db-Manager eine SQL SELCT über die Daten auszuführen).

hth.

Andere Tipps

Vielleicht sind die DevExpress Foren (oder je eine Unterstützung E-Mail, wenn Sie Zugriff darauf haben) wäre ein besserer Ort sein, um eine verbindliche Antwort auf diese Frage Leistung zu suchen.

Wie auch immer, ist besser, dass Daten zu gewährleisten auf das Format Sie wollen - für die Gründe plainth bereits erklärt - sobald Sie es speichern. Also, in diesen speziellen, stellen Sie sicher, dass die GUID in oberem geschrieben (oder niedriger ist, seine Geschmackssache) Fall. Wenn es SQL Server oder einem anderen Datenbankserver, die eine GUID-Datentyp haben, stellen Sie sicher, dass die SELECT, um die Arbeit machen -. Wenn anwendbar und möglich , auch die Art

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top