![]() |
AW: MSSQL/ADO + 3 Mio Datensätze , Thread Error
Zitat:
Niemand kann die Daten in einem Grid mit 3 Mio Datensätzen sinnvoll erfassen und nutzen. Es hat daher keinen Sinn, einem Menschen die komplette Datenmenge zu präsentieren. Ergo braucht man sie auch nicht aus der DB abrufen. Mit ein wenig SQL kannst man dem Benutzer gruppierte und aggregierte Daten liefern, die den kompletten Datenhaushalt der abfragen, aber nur die "Fakten" in den Client transportieren. Das Gruppieren und Aggregieren kann der SQL Server schnell und problemlos erledigen. Der Client jedoch nicht. |
AW: MSSQL/ADO + 3 Mio Datensätze , Thread Error
Liste der Anhänge anzeigen (Anzahl: 1)
Die Tatsache, dass wir in unserer Anwendung einige Sachen "suboptimal" implementiert haben, war mir auch schon vor diesem Betrag bekannt und dies ist auch nicht mein Thema
Ich habe über Nacht eine Testbankenbank auf unserem MSSQL Server eingespielt mit 12 MIO Datensätzen, d.h. die Aussage Irgend eine 32 Bit Speichergröße geteilt durch die Größe eines Datensatzes ergibt die Anzahl der max. Records kann ich so nicht nachvollziehen. |
AW: MSSQL/ADO + 3 Mio Datensätze , Thread Error
Zitat:
Zitat:
Dadurch werden die Daten dann (teilweise) redundant im Arbeitsspeicher des Clients gehalten. Vorher verstopfen diese das Netzwerk, da sie ja auch übertragen werden müssen. Wieviel Hauptspeicher hast du? |
AW: MSSQL/ADO + 3 Mio Datensätze , Thread Error
der Client hat aktuell 32 GByte Arbeitsspeicher, Win 7 x64 ..... ; Für ~ 1000 Euro könnte ich kurzfristig weiter 64 GByte auf unserem Client nachrüsten und hätte mein Problem für einige Zeit gelöst / nach hinten geschoben;
Kann ich mir mit dieser Strategie "Zeit verschaffen" oder muss ich sofort den Code anpacken? |
AW: MSSQL/ADO + 3 Mio Datensätze , Thread Error
Das ist egal. Wenn der Client nur 32 Bit ist, dann kann der nunmal standardmäßig nur 2 GB (optional 3, bzw fast 4 GB) verwalten
und das auch, wenn im Rechner real nun 1 GB RAM verbaut sind. (siehe Auslagerungsdatei) Es gibt aber auch DB-Komponenten und Grids, welche die Daten nicht alle sofort laden müssen, sondern nur einen (relevanten) verschiebbaren Teil, so daß man in dem Grid dann auch 300 Mio. Datensätze anzeigen könnte, wenn es unbedingt sein muß. Gut, sowas wie Sortierung und Filterung geht dann im Grid natürlich nicht mehr, da ja nicht alle Daten "aktuell" verfügbar sind. (Das ist wie beim HxD, welcher, bei Anzeige der des RAM- oder HDD-Inhalts, auch nicht alles lädt, sondern nur den aktuell sichtbaren Bereich) |
AW: MSSQL/ADO + 3 Mio Datensätze , Thread Error
Zitat:
Und solange deine erstellte Exe nicht 64-Bittig ist bringt dir das ehe nix. Zitat:
Mit 32 GB RAM kann man heutzutage problemlos ein ganze Automodell im CAD-System laden. Und du schafft es nicht damit ein popelige Tabllendarstellung zu realisieren. Ein Workaround wäre u.U. den Curser den Table-Komponente auf clUseServer zu stellen um ein paar Tage zeit zu haben. das so anzupassen das du nicht alle Datensätze in den Clientspeicher list. Man muss aber bedenken das dieser SErverseitige Curser Last auf den Server erzeugt. |
AW: MSSQL/ADO + 3 Mio Datensätze , Thread Error
Zitat:
das Problem taucht beim Einfügen auf! Eigentlich ist hier nur ein
Code:
vonnöten (TAdoQuery .Execute). Da muß keine Tabelle geladen werden!
input into Mytable (Fld1...Fldx) values(....)
Gruß K-H |
AW: MSSQL/ADO + 3 Mio Datensätze , Thread Error
Zitat:
Unsere Analyse zeigt : Das Programm kippt bereits beim Versuch eine TADOTable zu aktivieren (
Delphi-Quellcode:
) , bis zur Anzeige der Daten im Grid kommen wir erst gar nicht.
MyAdoTable.active := true
Damit bin ich auch nicht in der Lage in einer Query einen Befehl "select * from MyTable" abzuschicken, damit ist ein Lösungsweg absolut nicht klar |
AW: MSSQL/ADO + 3 Mio Datensätze , Thread Error
Du sollst auch auf die Table verzichten und per Query, die Daten holen, welche Du benötigst! Und nur die!!! Das für Deinen Anwendungsfall falsche Verhalten selber nachzubilden ist ja auch nicht besser!
|
AW: MSSQL/ADO + 3 Mio Datensätze , Thread Error
Zitat:
:cry: Meine Anwendung ist ganz gut vergleichbar mit einem CAD Programm, wenn der Anwender auf den "Male Gegenstand auf Bildschirm, z.b. einen Pkw " Button drückt dann läuft intern "select * from Tabelle"; soll ich beim Zeichnen des Autos die Reifen dann weglassen ???? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz