AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken MSSQL/ADO + 3 Mio Datensätze , Thread Error
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von bernhard_LA · begonnen am 11. Jun 2014 · letzter Beitrag vom 13. Jun 2014
Antwort Antwort
Seite 6 von 7   « Erste     456 7      
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#51

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

  Alt 13. Jun 2014, 07:50
Ich befürchte aber, dass das Problem nicht nur an der Datenanbindung allein liegt. Da er die Daten ja nach dem Einlesen in eine Objektliste packt, ist es ja egal, ob das Einlesen nun in einem Rutsch oder in kleineren Paketen erfolgt. Da man aber den genauen Code nicht kennt ( er postet ja immer Testcode, der vielleicht zufällig den gleichen Fehler erzeugt oder Codesegmente, welche viele anderen Prozeduren aufruft (blackbox). Die Prozeduren sind auch noch ohne Parameter!
Das Programm sollte man grundsätzlich auf den Prüfstand stellen und dann teilweise/komplett neu Schreiben!
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#52

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

  Alt 13. Jun 2014, 08:36
Ich befürchte aber, dass das Problem nicht nur an der Datenanbindung allein liegt. Da er die Daten ja nach dem Einlesen in eine Objektliste packt, ist es ja egal, ob das Einlesen nun in einem Rutsch oder in kleineren Paketen erfolgt.
Entsprechend dem 5ten Post (http://www.delphipraxis.net/1261946-post5.html) reicht es schon die Mio-Datensätze im Client anzufordern (CurserLocation = clUseClient)

Das Programm sollte man grundsätzlich auf den Prüfstand stellen und dann teilweise/komplett neu Schreiben!
Aber nur geheim - Chef darf ja nix davon erfahren das im Quellcode noch ein paar Supportechnische Bomben versteckt sind ...
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#53

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

  Alt 13. Jun 2014, 08:44
Zitat:
Zitat von mkinzler:
Ich befürchte aber, dass das Problem nicht nur an der Datenanbindung allein liegt. Da er die Daten ja nach dem Einlesen in eine Objektliste packt, ist es ja egal, ob das Einlesen nun in einem Rutsch oder in kleineren Paketen erfolgt.
Entsprechend dem 5ten Post (MSSQL/ADO + 3 Mio Datensätze , Thread Error) reicht es schon die Mio-Datensätze im Client anzufordern (CurserLocation = clUseClient)
Ich hätte vielleicht nicht nur und allein unterstreichen sollen
In seinem Testprogramm hat er das DataSet ja auch noch in einem Grid anzeigen lassen, dann hat er die 3 Mio Datensätze ja noch öfters im Speicher.
Tipps für den TE (oder jemand anderes der ähnliches vor hat oder macht und für Vorschläge offen ist [bzw. dessen Chef...]):
-Nur Daten Lesen, die benötigt werden
-Ist eine Speicherung in Objektliste notwendig ( kann ja sein)?
-Manipulation der Daten direkt in der Datenbank
-Nur zur Anzeige kein komplettes laden der daten notwendig (paging, "virtuelle" Anzeigekomponenten, ...)
-Überprüfung Datenbankstruktur ( Verwendung von T<xx>Table oft in Verbindung mit Abwesenheit von Normalisierung).
-...
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#54

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

  Alt 13. Jun 2014, 08:48
Ich hätte vielleicht nicht nur und allein unterstreichen sollen
In seinem Testprogramm hat er das DataSet ja auch noch in einem Grid anzeigen lassen, dann hat er die 3 Mio Datensätze ja noch öfters im Speicher.
Bei einem DB-Grid - Nein. Da wird die gerade Angezeigten Datensätze direkt aus dem Dataset geholt und visualisiert. Aber es erfolgt keine doppelte Speicherung.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#55

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

  Alt 13. Jun 2014, 08:49
Für die angezeigten schon
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#56

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

  Alt 13. Jun 2014, 09:15
Für die angezeigten schon
Evtl. 50 von einigen hunderttausend/millionen - Ob das den Kohl fett macht?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
pertzschc

Registriert seit: 29. Jul 2005
Ort: Leipzig
305 Beiträge
 
Delphi 10.4 Sydney
 
#57

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

  Alt 13. Jun 2014, 15:00
Für die angezeigten schon
Wie oft lese ich das denn noch? Der Thread-Autor möchte die Daten nicht anzeigen, weder in einem Grid noch in einer Liste.

Er möchte nur die x Mio DS lesen und in Objekte umwandeln und dann auf den Objekten arbeiten. Wäre damit gut, die Anzeigediskussion zu beenden und den Autor mal wieder kommen zulassen: mit realen Codebeispielen und besser formulierten Fragen.

Ein wenig Hintergrund über seinen Delphihintergrund würde der Diskussion auch helfen.

Christoph
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#58

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

  Alt 13. Jun 2014, 15:23
Wie oft lese ich das denn noch? Der Thread-Autor möchte die Daten nicht anzeigen, weder in einem Grid noch in einer Liste.
Es kracht aber schon beim öffnen der Table-Komponenten an der zufälligerweis auch ein grid hängt.
Es wüde auch ohne Grid krachen.

Er möchte nur die x Mio DS lesen und in Objekte umwandeln und dann auf den Objekten arbeiten.
Wenn seine Objekt weniger Speicher als die ADO-Recordsets haben dann habe ich ihm schon einen einfachen Tipp gegeben: Forward-Only-Curser

Wäre damit gut, die Anzeigediskussion zu beenden und den Autor mal wieder kommen zulassen: mit realen Codebeispielen und besser formulierten Fragen.
Anzeigen oder nicht ist egal. 3 Mio-Datensätze die "etwas breiter" sind werden mit ADO/dbGo-Overhead zu viel Speicher benötigen das es schon kracht.

Aber wenn wirklich auch das Testprogramm 64-Bittig ist sollte der Speicher doch kein Problem darstellen (auch wenn es besch**** implementiert ist bei der Anzahl der Datensätze).
Was würde passieren wenn man direkt ohne dbGo nur mit ADO-Mitteln die Daten abholen würde?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
-=ZGD=-

Registriert seit: 25. Apr 2006
Ort: Bad Aibling
105 Beiträge
 
Delphi 10.1 Berlin Professional
 
#59

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

  Alt 13. Jun 2014, 15:51
Kann man die Daten nicht einfach häppchenweise lesen?

Er kann sich die Summe holen und teilt das durch ne annehmbare Zahl und liest entweder parallel, was natürlich dann auch so viele Connections bedeutet oder einfach X mal 10.000 Datensätze und verschiebt seinen Cursor einfach weiter nach oben.
Stefan Michalk
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#60

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

  Alt 13. Jun 2014, 16:17
Kann man die Daten nicht einfach häppchenweise lesen?

Er kann sich die Summe holen und teilt das durch ne annehmbare Zahl und liest entweder parallel, was natürlich dann auch so viele Connections bedeutet oder einfach X mal 10.000 Datensätze und verschiebt seinen Cursor einfach weiter nach oben.
Wenn man wüßte was er wirklich treibt, könnte er auch ein paar konkrete Lösungsvorschläge bekommen.
Zitat:
4. Dateivolumen 800 Mbyte
5. Index Volumen 200 Mbyte
6. Anzahl der Datensätze in der Größten Tabelle ~ 3 Mio
Da ist jeder Datensatz ca. 255 Byte groß (wenn der Rest neben der ominösen Tabelle so gut wie keinen Inhalt hat) Das sollte auch mit 32Bit-Programmen zu handhaben sein.

Dann taucht der Fehler bein "Einfügen" auf, dann wiederum beim Einlesen "bevor die Daten ins Grid kommen"

Alles etwas konfus.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 7   « Erste     456 7      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz