AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TAdoTable.Open() sprengt Arbeitsspeicherlimit
Thema durchsuchen
Ansicht
Themen-Optionen

TAdoTable.Open() sprengt Arbeitsspeicherlimit

Ein Thema von AxelO · begonnen am 7. Okt 2024 · letzter Beitrag vom 22. Okt 2024
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.374 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: TAdoTable.Open() sprengt Arbeitsspeicherlimit

  Alt 9. Okt 2024, 05:56
Ich würde das überhaupt nicht mit Delphi lösen, sondern auf dem SQL-Server einen Zugriff auf die Access-Datenbank einrichten. Anschließend wird der Abgleich auf dem SQL-Server gemacht. Dafür bietet sich eine Stored Procedure an. Das dürfte um ein Vielfaches schneller sein und um die Speicherverwaltung kümmert sich SQL-Server.
Allerdings setzt das Kenntnisse in SQL voraus. Falls die bei dir nicht ausreichend sind, solltest du dafür jemanden beauftragen. Das spart vermutlich dennoch mehr Zeit und Kosten ein, als du jetzt für den Umbau in Delphi investieren musst. Ich gehe aber davon aus, dass eine Firma, die einen SQL-Server betreibt, auch jemanden hat, der über ausreichend SQL-Kenntnisse verfügt. Somit blieben die Kosten zumindest im Haus.
Eine Stored Procedure auf dem SQL-Server kannst du dann auch mit Delphi starten.
Peter
  Mit Zitat antworten Zitat
AxelO

Registriert seit: 1. Okt 2024
Ort: Rheinland/NRW
6 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: TAdoTable.Open() sprengt Arbeitsspeicherlimit

  Alt 8. Okt 2024, 12:44
• Was ist mit dieser neuen Schnittstelle, FireDAC? Macht die das grundlegend anders?
Ein simpler Test mit einer TFDTable/TFDQuery Komponente für die betreffende Tabelle mit dem Speicherproblem sollte leicht zu bewerkstelligen sein. [...]
Ja schon klar. Ich wollte mir halt mit einer schnellen Nachfrage die Lernkurve ersparen. Wenn jemand definitiv gesagt hätte, dass FireDAC das auch nicht grundsätzlich anders macht, bräuchte ich erst gar nicht damit anzufangen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.531 Beiträge
 
Delphi 12 Athens
 
#3

AW: TAdoTable.Open() sprengt Arbeitsspeicherlimit

  Alt 8. Okt 2024, 12:51
Wenn irgendwas "zusammenhängenden" Speicher benötigt, dann muß eben auch so ein großer Block aktuell im virtuellen Speicher frei sein.

Im Extremfall kann wird das schon bei durchschnittlich 300 bis 700 MB der Fall sein.

z.B. ein Programm belegt aktull nur 10 MB Arbeitrspeicher,
aber der Speicher ist extrem fragmentiert, also die paar MB sind schön verteilt und auch die DLLs liegen kreuz und quer überall rum,
dann kann es bereits so sein, dass in den möglichen 4GB nichtmal mehr 100 MB zusammengängend frei sind,
also es bereits knallt, obwohl nur 110 MB benötigt würden.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 8. Okt 2024 um 13:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.750 Beiträge
 
Delphi 12 Athens
 
#4

AW: TAdoTable.Open() sprengt Arbeitsspeicherlimit

  Alt 8. Okt 2024, 13:13
Wenn jemand definitiv gesagt hätte, dass FireDAC das auch nicht grundsätzlich anders macht, bräuchte ich erst gar nicht damit anzufangen.
Das kann man aber ohne weitere Kenntnisse über den bestehenden Code nicht sagen.

In der Regel ist es kein Problem, mit FireDAC auf Datenbanken mit Millionen von Datensätzen zuzugreifen, auch wenn nicht alle Datensätze in den Hauptspeicher des Client passen würden. Es kommt halt darauf an, wie man es verwendet. Mit den Standardeinstellungen ist das Öffnen einer TFDQuery/TFDTable überhaupt kein Problem, egal wie viele Datensätze es gibt. Ohne die Datenbank allgemein zur Verfügung zustellen bist du aber der einzige hier der das prüfen kann.

Wenn das reine Öffnen in einem Testprogramm sowohl mit FireDAC als auch ADO funktioniert, dann liegt das Problem eh woanders und bedarf einer tieferen Analyse der auslösenden Vorgänge.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   

 

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 03:40 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