Allrounder
07-05-08, 08:39
Ich habe folgenden Effekt:
Ein RPG-Programm liest in einer Schleife eine Physische Datei
und gibt den Inhalt nach einigen rtrim und diversen Datumsprüfungen mit einem Insert (Embedded) in eine SQL-Tabelle aus.
Das Problem ist nun die Laufzeit. Es sind 11,7 Mio Datensätze, die geschrieben werden. Die ersten 4-5 Millionen Datensätze gehen schnell, hochgerechnete Gesamtlaufzeit ca. 2 Stunden. Dann wird das Schreiben der Datensätze kontinuierlich langsamer, bei 8-9 Mio Datensätzen ist die Geschwindigkeit der Inserts so langsam, dass der Job ganz in die Knie geht. Aus den 2 Stunden werden dann 23(!) Stunden.
Weiß jemand, wo die Zeit verlorengeht oder wie ich am besten herausfinde, wo das Problem ist? Hatte bisher keine großen SQL-Performance-Probleme und habe mich deshalb noch nicht damit auseinandergesetzt.
Die SQL-Tabelle ist eine Standalone-Tabelle, keine Views, keine Verknüpfungen über Foreign Keys. Es gibt einen Primary Key über eine Idenditätsspalte und einen nicht eindeutigen Index über eine weitere Spalte.
Ein RPG-Programm liest in einer Schleife eine Physische Datei
und gibt den Inhalt nach einigen rtrim und diversen Datumsprüfungen mit einem Insert (Embedded) in eine SQL-Tabelle aus.
Das Problem ist nun die Laufzeit. Es sind 11,7 Mio Datensätze, die geschrieben werden. Die ersten 4-5 Millionen Datensätze gehen schnell, hochgerechnete Gesamtlaufzeit ca. 2 Stunden. Dann wird das Schreiben der Datensätze kontinuierlich langsamer, bei 8-9 Mio Datensätzen ist die Geschwindigkeit der Inserts so langsam, dass der Job ganz in die Knie geht. Aus den 2 Stunden werden dann 23(!) Stunden.
Weiß jemand, wo die Zeit verlorengeht oder wie ich am besten herausfinde, wo das Problem ist? Hatte bisher keine großen SQL-Performance-Probleme und habe mich deshalb noch nicht damit auseinandergesetzt.
Die SQL-Tabelle ist eine Standalone-Tabelle, keine Views, keine Verknüpfungen über Foreign Keys. Es gibt einen Primary Key über eine Idenditätsspalte und einen nicht eindeutigen Index über eine weitere Spalte.