Einzelnen Beitrag anzeigen

Dejan Vu
(Gast)

n/a Beiträge
 
#45

AW: MSSQL/ADO + 3 Mio Datensätze , Thread Error

  Alt 12. Jun 2014, 18:02
Also (Hab die aktuellen Entwicklungen nur überflogen)

1. Keine Sau braucht 3 Mio Records *AUF EINMAL* im Speicher.
2. Wenn du alle Daten irgendwie brauchst, dann => paging. Leider ist das mit Delphi und einem TDataset nicht sooo leicht hinzubekommen, vor allen Dingen dann nicht, wenn geändert werden soll, aber egal.

Wenn Du alle Daten benötigst (und es gibt Fälle, da braucht man das, z.B. Export-Funktion oder eben Rendern), dann lade die Daten happenweise. Du kannst ja z.B. immer nur so viel laden, wie in ein Grid passen (ohne Scrollbars). Anstatt Scrolling hast Du die Buttons 'Seite vor', 'Seite zurück'. Dann noch '1. Seite' und 'Letzte Seite'. Und noch 'Gehe zu Datensatz #' etc.

Deine Tabelle muss ordentlich indexiert sein, damit Du auch bei er Query wie
Code:
select * from Tabelle where SchiessmichTot='Alu' and Nutenverwutzung in ('parsipal','konträrinhärent')
nicht stundenlang warten musst.

Das ist alles ein wenig Arbeit, aber irgendwann musst Du eh damit anfangen.

Ich habe (in C#) so ein Teil ein paar Stunden gebastelt. In Delphi würde ich das mit einer TListView auch so schnell hinbekommen (sogar mit einem MRU-Cache)

Das kürzt die Diskussion vielleicht ab. Was den Fehler anbelangt: Ich kenne ihn nicht, aber ich lade mir auch keine langen Tabellen in den Speicher und was man so liest, scheint es daran zu liegen.

Also: Gugel nach "Paging", implementier das und fertig. Wenn Du da nicht weiter kommst, frag nach.
  Mit Zitat antworten Zitat