-
Leeren großer Dateien
Hallo liebes Forum,
ich habe mal wieder eine Frage....
Im Zuge unses Jahresabschlusses müssen mehrere Dateien um die "Altlasten" bereinigt werden. Die Größe der Files liegt jeweils so zwischen 10 und 20 Millionen Datensätzen.
Die physischen Dateien sind ungeschlüsselt, darüber liegt jeweils eine logische Datei, die das Kriteriums-Feld im Schlüssel beeinhaltet (allerdings nicht als primary key).
Bsp.
PF: FeldA, FeldB, FeldC, FeldD
LF: K FeldA, K FeldC
Entfernt werden sollen alle Sätze mit z.B. FeldC<2000
Die Frage ist für uns, welcher Weg am schnellsten und wenigsten performanceträchtig ist - mit CPYF über Zwischendateien, SQL, Programme (RPG).
Hat jemand mit solchen grossen Dateien schon Erfahrungen gemacht (Fuerchau oder BenderD vielleicht ?).
Schon mal vorab vielen Dank.
Mirko Knoll
-
Hallo Mirko,
am wenigsten Performance braucht m.E. ein kleines RPG-Programm im Batch - mit einer eigenen LF mit FELDC als Key und einem Select: CMP(EQ 2000).
Falls die Datei journalisiert wird: Sichern, Journal beenden, Batchjob laufen lassen, Journal wieder starten.
Falls die Zeit reicht, wäre auch ein RGZPFM zu empfehlen.
Gruß,
Robert
-
Naja, bei den großen Mengen ist warscheinlich der CPYF am schnellsten.
Hierbei können mehrere Parameter verwendet werden:
FROMKEY / TOKEY, wenn das Feld im Schlüssel ist
oder
INCREL((*IF FELDC *LT 2000))
Wichtig! In der Datei sollte FRCRATIO(*NONE) eingestellt werden, da sonst der Copy Satz für Satz kopiert und nicht geblockt (ca. Faktor 20-50) werden kann.
Diesen CPYF würde ich halt 2x machen (<2000 und >=2000) um die Daten zu trennen, dann per CLRPFM die alte Datei löschen und die verbliebenen Daten zurückkopieren.
Mit einem kleinen Programm gehts natülich etwas schneller, da 1 mal gelesen und 2 Mal geschrieben werden kann (COBOL ist da sogar ca. 1,5 mal schneller).
Den RGZPFM kannst du dir dann sparen.
Ggf. FRCRATIO wieder einschalten.
Natürlich solltest du Journale /Trigger vorher abschalten und hinterher wieder anschalten bzw. anhängen.
-
Hallo Robert und Baldur,
erst mal vielen Dank für Eure Hilfe.
So in die Richtung des CPYF hatte ich auch bereits gedacht.
Ich wollte nämlich bei der Dateigröße auf jeden Fall um den RGZPFM bei der Ursprungsdatei rumkommen .
Dann mache ich mich mal an die Arbeit ....
Tschüß
Mirko
-
Moin Mirko,
wo man sich so überall trifft 
Viel Spaß mit Deinen Dateien 
Gruß
Andree
-
Hallo,
it depends...
on your hardware ressources
on your goals
SQL mit parallel Database feature könnte z.B.: durch Parallelisierung am schnellsten sein, bei höherem Ressourcenverbrauch!!!
Die Antwort lässt sich eigentlich nur durch messen (evt. Teile und hochrechnen) geben, alles andere ist im Prinzip mehr oder weniger gut geraten.
mfg
Dieter Bender
 Zitat von MKnoll
Hallo liebes Forum,
ich habe mal wieder eine Frage....
Im Zuge unses Jahresabschlusses müssen mehrere Dateien um die "Altlasten" bereinigt werden. Die Größe der Files liegt jeweils so zwischen 10 und 20 Millionen Datensätzen.
Die physischen Dateien sind ungeschlüsselt, darüber liegt jeweils eine logische Datei, die das Kriteriums-Feld im Schlüssel beeinhaltet (allerdings nicht als primary key).
Bsp.
PF: FeldA, FeldB, FeldC, FeldD
LF: K FeldA, K FeldC
Entfernt werden sollen alle Sätze mit z.B. FeldC<2000
Die Frage ist für uns, welcher Weg am schnellsten und wenigsten performanceträchtig ist - mit CPYF über Zwischendateien, SQL, Programme (RPG).
Hat jemand mit solchen grossen Dateien schon Erfahrungen gemacht (Fuerchau oder BenderD vielleicht ?).
Schon mal vorab vielen Dank.
Mirko Knoll
-
Moin @MKnoll,
ich habe im Zuge von Datenreorganisierungen die Erfahrung gemacht, daß es manchmal sehr sinnvoll ist, alle LF, die man nicht benötigt, vor der Bearbeitung der PF zu löschen. Ich hatte eine PF mit 52 LF drauf und Millionen von Datensätzen. Nach Tests hat sich gezeigt, daß es am schnellsten läuft, wenn die LFs nicht da sind und zum Schluß wieder erstellt werden.
-
Hallo,
für diesen Effekt müsste allerdings ein CHGLF MAINT(*RBLD) oder CHGLF MAINT(*DLY) eigentlich ausreichen, anschließend wieder zurück, versteht sich. Wobei die Frage "nicht benötigt" sich ja eigentlich erst später beantwortet.
mfg
Dieter Bender
 Zitat von procher
Moin @MKnoll,
ich habe im Zuge von Datenreorganisierungen die Erfahrung gemacht, daß es manchmal sehr sinnvoll ist, alle LF, die man nicht benötigt, vor der Bearbeitung der PF zu löschen. Ich hatte eine PF mit 52 LF drauf und Millionen von Datensätzen. Nach Tests hat sich gezeigt, daß es am schnellsten läuft, wenn die LFs nicht da sind und zum Schluß wieder erstellt werden.
Similar Threads
-
By codierknecht in forum NEWSboard Programmierung
Antworten: 10
Letzter Beitrag: 27-08-08, 05:13
-
By Rincewind in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 23-01-07, 08:49
-
By usafft in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 23-08-06, 11:07
-
By BeRe in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 21-08-06, 10:17
-
By HACHIMAN in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 22-05-06, 09:48
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks