Ich habe eine große dataset
mit möglicherweise über einer Million Einträge. Alle Elemente haben einen zugewiesenen Zeitstempel und Elemente werden zur Laufzeit zur Gruppe hinzugefügt (normalerweise, aber nicht immer, mit einem neueren Zeitstempel). Ich muss eine Untermenge dieser Daten in einem bestimmten Zeitbereich anzeigen. Dieser Zeitbereich ist üblicherweise ziemlich klein im Vergleich zu dem Gesamtdatensatz, d. H. Von den 1.000.000+ Elementen, die nicht mehr als etwa 1000 sind, in diesem gegebenen Zeitbereich. Dieser Zeitbereich bewegt sich mit einer konstanten Geschwindigkeit, z. jede Sekunde wird der Zeitbereich um eine Sekunde verschoben. Zusätzlich kann der Benutzer den Zeitbereich jederzeit anpassen (durch den Datensatz "bewegen") oder zusätzliche Filter einstellen (z. B. nach Text filtern).Filtern einer Untergruppe von (potentiell) 1.000.000+ Artikeln
Bis jetzt war ich nicht besorgt über die Leistung, versuchte, die anderen Dinge richtig zu machen, und arbeitete nur mit kleineren Test-Sets. Ich bin mir nicht sicher, wie ich dieses Problem effizient angehen kann und würde mich über jeden Input freuen. Vielen Dank.
Edit: Gebrauchte Sprache ist C# 4.
Update: Ich bin jetzt ein Intervallbaum verwendet wird, kann die Umsetzung hier: https://github.com/mbuchetics/RangeTree
Es kommt auch mit einer asynchronen Version, die den Baum neu erstellt mit die Task Parallel Library (TPL).
Ist der Datensatz nach dem Zeitstempel sortiert? – mtrw
Welche Datenstruktur verwenden Sie, um 1000000 + Elemente zu speichern? – TalentTuner
Ist dies ein 'DataSet'-Objekt oder beziehen Sie sich auf eine Datenbank, wenn Sie Dataset sagen? – jvanrhyn