Guten Morgen
Ich habe ein Programm geschrieben, welches auf diverse Tabellen einer
SQL Datenbank zugreift.
Die Daten werden den dbFeldern und dbGrids über AdoDatasets und den zugehörigen DataSources zur Verfügung
gestellt.
Nun muss ich festellen, dass der Programmstart sich bei steigenden Datenbankeinträgen auch mehr und mehr verzögert.
Ich gehe schwer davon aus, dass es daran liegt, dass Daten direkt beim Start geladen werden.
Daraufhin hab ich nun alle DataSets erst dann auf
Active
gesetzt wenn ich diese auch wirklich brauche und die
SQL Abfrage soweit eingeschränkt wie es geht, um nicht unnötige Daten zu laden. Anscheinend ist das aber nicht des
Rätsels Lösung, denn mein Programm startet immer noch langsam. Wenn es ersteinmal geladen ist, läuft es super, jedoch würde ich
gerne die Performance steigern. Ich vermute, dass die einzelnen DataSets bereits dann eine Verbindung herstellen, wenn die
Unit Erstellt wird. Dies geschieht ja bereits, wenn das Main_Form seine
uses
Einträge durchgeht und die dort enthaltenen Units erstellt werden.
Die Eigenschaften der Datasets einfach nur "
Active = True
" zu setzen wenn ich das Formular öffne welches die Daten braucht und"
Active=False
" zu setzen wenn ich sie nicht mehr brauche, hat nicht das gewünschte Ergebnis gebracht.
Wo würdet ihr die Datenbanken auf Active bzw. inactive setzen? Bringt das überhaupt was?
Wenn ich sie in den jeweiligen Units in die
OnCreate
Procedure schreibe, dann gibts direkt ne Zugriffsverletzung.
Danke schon mal im Voraus.
Gruß Drumbo