Autor Beitrag
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Sa 21.09.02 18:52 
Hi,

Ich hab nen problem mit nem Programm von mir.. Ich hab da nen paar Datenbanken und wenn ich darin etwas speichere mach ich das auf diese Art:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
    Query.Close;
    Query.SQL.Clear;
    Query.SQL.Add('INSERT INTO DB1 (...) VALUES (...)');
    Query.ExecSQL;
    Query.SQL.Clear;
    Query.SQL.Add('INSERT INTO DB2 (...) VALUES (...)');
    Query.ExecSQL;
    Query.SQL.Clear;
    Query.SQL.Add('INSERT INTO DB3 (...) VALUES (...)');
    Query.ExecSQL;
    Query.SQL.Clear;
    Query.SQL.Add('INSERT INTO DB0 (...) VALUES (...)');
    Query.ExecSQL;
    Query.Close;


und wenn ich das sagen wir 20x hintereinander mache, wird das programm extrem langsam... wenn ich das Prog dann neustarte ist's wieder schnell wie immer... hat wer ne Idee woran das liegen kann??

Au'revoir,
Aya
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: Sa 21.09.02 20:20 
Hallo,

Ich habe es mittlerweile aufgegeben dir die richtige Schreibweise der französischen Verabschiedung beizubringen...

Ich kenne mich zwar nicht mit den SQL-Befehlen aus, aber Datenbanken habe die seltsame Eigenschaft im Speicher abgewicklet zu werden. Zumindest die meisten. Ich weiß nicht, wie groß deine Datensätze sind, und wiviel RMA du hast, aber wenn die Dinger groß werden und der Speicher knapp, kann es durchaus zu Performance-Einbußen kommen. Vor allem weiß ich nicht, was die Funktionen, die du aufrufst, so alles in den Speicher schreiben.
Eine evtl. Möglichkeit wäre es vielleicht, die Datenbank in eine Datei zu schreiben, den RAM zu löschen (also die Datenbank freigeben) und danach die DB wieder aus der Datei zu lesen. Damit emulierst du quasi einen Neustart des Programmes, zumindest was die DB betrifft. Sicherlich gibt es dafür auch eine SQL-Funktion. Schau mal in der SQL-Hilfe nach.
Der Prozess an sich ist zwar auch langsam (im Vergleich), aber dafür wird wahrscheinlich ein darauffolgendes Suchen oder Lesen schneller gehen.

Tschüß
Thomas

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: So 22.09.02 16:24 
Hi,

hast Du es schonmal so probiert ?

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
    Query.Close; 
    Query.SQL.Clear; 
    Query.SQL.Add('INSERT INTO DB1 (...) VALUES (...)'); 
    Query.SQL.Add('INSERT INTO DB2 (...) VALUES (...)'); 
    Query.SQL.Add('INSERT INTO DB3 (...) VALUES (...)'); 
    Query.SQL.Add('INSERT INTO DB0 (...) VALUES (...)'); 
    Query.ExecSQL; 
    Query.Close;


Oder mit einer Schleife ?
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: So 22.09.02 16:52 
Wenn das klappen würde, wäre doch die ausführung der Speicheraktionen langsam.
Aya beschreibt doch, daß es nach dem Speichern langsam wird.
Oder irre ich mich da?

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Mo 23.09.02 07:20 
Hi
es wäre mal ganz interresant zu wissen, welche DB du verwendest und wie du auf sie zugreifst (BDE, ADO usw.)

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...