bugfox 10 Geschrieben 8. November 2003 Melden Teilen Geschrieben 8. November 2003 Hallo, ich habe ein Performance Problem. Eine Anwendung macht auf einer SQL-Server 7 SP 4 Datanbank ein Update über eine EXE. Ich habe also keine Möglichkeit hier einzugreifen, das Einzige wäre Einstellungen am SQL-Server vorzunehmen. Es werden ca. 550000 Datensätze wahrscheinlich aufgeteilt auf mehrere Tabellen aktualisiert. Folgendes habe ich schon getestet: 1.)Ich habe eine feste Arbeitsspeichergröße verwendet Wenn der Speicher vollgelaufen ist wird die Übernahme noch langsamer. Bringt also etwas. 2.) Rechner getauscht von 1.8 GHZ auf 2,4 GHZ auf 3 GHZ Der 1.8ter hat ca 1 Buchung pro Sekunde geschafft. Der 2.4er und auch der 3er ca 10 Buchungen pro Sekunde. 3.) Wenn der vergebene Speicher von 712 MB vollgelaufen ist wird der Rechner wieder langsamer. Ich vergebe eine feste Arbeitsspeichergröße von ca 300 MB, warte im Taskmanager bis ich sehe dass der Arbeitsspeicher freigegeben wurde und stelle ihn dann wieder auf 712 MB ein Danach läuft er wieder etwas schneller. Die CPU hat ständig eine Auslastung von 100% Die Datenbank und das Transaktionprotokoll liegen auf einer Platte. Ich denke aber nicht das die Platte das Problem ist. Vielleicht kann mir jemand noch einen Tipp geben, die Datenübernahme dauert so nämlich 4 Tage, d.h. für unsere Firma, dass 2 Tage nicht gearbeitet werden kann (wenn ich am Donnerstag starte). Achim Zitieren Link zu diesem Kommentar
auer 10 Geschrieben 8. November 2003 Melden Teilen Geschrieben 8. November 2003 Wenn die CPU ständig mit 100% läuft, hilft nur eine schnellere CPU oder mehr RAM, offenbar fängt der Rechner mit Auslagerungen an. Bei Update-Anweisungen kann man ziemlich viel falsch machen, ist es mir selbst schon passiert, mit einer einfachen Änderung von 40 Sekunden auf unter eine Sekunde zu kommen. Theoretisch ist es gut, wenn Datenbank und Log auf verschiedenen Platten liegen, da im einen Fall der Zugriff völlig durcheinander, im anderen Fall ausschließlich sequentiell läuft - bei einer 100%-CPU ist das aber nicht der Flaschenhals. Mit anderen Worten: Es sieht ziemlich schlecht aus, sofern Du nicht den eigentlichen Code ändern kannst. Vage Möglichkeit: Falls das geht, nimm dir auf einem Testrechner 1/10 des Datenbestandes vor und lasse darüber die Exe laufen. Sollte dann drastisch weniger Zeit benötigt werden, dann könnte man vielleicht den Originaldatenbestand zunächst aufteilen und am Ende wieder zusammenfügen. All dies sind allerdings Herumbasteleien. Andere Möglichkeit: Wenn die Daten direkt vorliegen, auf die Exe verzichten und das Ding neu schreiben - bei einer so langen Auszeit lohnt sich das wahrscheinlich relativ rasch. ------------- Gruß, Auer Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.