schnelles Löschen in DataTable

15/07/2009 - 12:52 von Klaus Mayer | Report spam
Hallo,

ich befülle eine DataTable mit ca. 4Mio Datensàtzen, welche im
Programmablauf
weiter verarbeitet werden.
Nun möchte ich parallel dazu jeden bereits verarbeiteten Datensatz
gleich aus dem Table löschen.
Leider dauert das pro Datensatz sehr lange (gefühlt 0,5sek).
Wie kann ich den Löschzugriff beschleunigen? Kann ich irgendwie einen
Index o.à. auf dem DataTable
erzeugen?

Für Eure Tipps dankend,

Klaus
 

Lesen sie die antworten

#1 Julia M
15/07/2009 - 13:20 | Warnen spam
On Jul 15, 12:52 pm, Klaus Mayer wrote:
Wie kann ich den Löschzugriff beschleunigen? Kann ich irgendwie einen
Index o.à. auf dem DataTable
erzeugen?



Schau mal unter DataTable.PrimaryKeys nach. Dem Ding kannst Du eine
oder mehrere Spalten übergeben. Am besten natürlich eine Spalte, die
Du extra als numerischen Index anlegst. Sonst wird das auch nicht
unbedingt schneller.

Noch schneller wird es sehr wahrscheinlich werden, wenn Du eine zweite
zusàtzliche "bool"-Spalte erstellst, die Du auf "true" setzt anstatt
die betreffende Zeile sofort zu löschen.

Zwischendurch kannst Du dann ein "delete where löschmich=true"
drüberlaufen lassen.

Ich habe mich mit einer meiner eigenen Tables auf diese Weise von
reellen 10 Sekunden Wartezeit auf eine unfühlbare Verzögerung
heruntergearbeitet :-)

Michaela

Ähnliche fragen