4 Stimmen

Ist CPYTOIMPF zu qtemp schneller als zu anderen Bibliotheken?

Ich bin ein Programmierer, der auf IBM AS400 V5R4 arbeitet. Ich erstelle 2 CL-Programme, die beide CPYTOIMPF verwenden, um eine Liste von AS400 PFs in zeichengetrennte Dateien zu formatieren. Der Unterschied zwischen den beiden Programmen ist, dass das eine die Dateien in qtemp(PGM A) formatiert, während das andere die Dateien in einer anderen Bibliothek als qtemp(PGM B) formatiert.

Ich habe die 2 Programme separat aufgerufen, um etwa 90 Dateien mit insgesamt etwa 8 Millionen Datensätzen zu formatieren. Beide Programme verbrauchten mehr als 1300 Sekunden CPU-Zeit, wobei PGM A etwa 5 % weniger CPU-Zeit verbrauchte als PGM B. Ich habe mehrere Versuche unternommen und das Ergebnis ist ähnlich.

Darf ich wissen, warum CPYTOIMPF nach qtemp schneller ist als das Kopieren in eine andere Bibliothek, obwohl es nur ein kleiner Unterschied ist?

2voto

Lawrence Dol Punkte 61053

QTEMP und sein Inhalt müssen nicht über die Lebensdauer des Auftrags hinaus überleben, daher kann es so optimiert werden, dass es keine oder weniger häufig Daten auf die Festplatte überträgt, und es muss auch keine Dateisystemtransaktionen für Objektänderungen erstellen, da QTEMP bei einem unkontrollierten Systemausfall einfach mit dem Auftrag verschwindet.

Außerdem muss sich QTEMP nicht um die Sicherheitsauflösung und die Objektkontrollen kümmern, da es für den Auftrag privat ist.

Diese und ähnliche Dinge können dazu führen, dass der Zugriff auf QTEMP weniger Arbeit erfordert als bei einer normalen persistenten Bibliothek.

1voto

Mike Wills Punkte 20421

Wenn Sie hier keine Antwort erhalten. Versuchen Sie, Ihre Frage zu posten MIDRANGE-L . Dort gibt es eine große Gemeinschaft von IBM i (oder AS/400) Experten. Wahrscheinlich kann dort jemand die Frage beantworten.

1voto

robertnl Punkte 1014

QTEMP ist immer in der Bibliotheksliste eines iSeries Jobs (bei einer normal konfigurierten iSeries). Haben Sie Ihr - interessantes! - Experiment mit einer Bibliothek durchgeführt, die ebenfalls in der Bibliotheksliste steht?

Ich weiß nicht, ob syslibl, curlibl oder usrlibl von Bedeutung sein könnten.

0voto

Paul Morgan Punkte 28704

Interessantes Experiment.

Verwenden Sie das SIZE-Attribut des CRTPF-Befehls, wenn Sie die Ausgabedatei in QTEMP oder in der anderen Bibliothek erstellen? Ich vermute, dass die Erweiterung der Datei in QTEMP schneller ist als in der anderen Bibliothek. Wenn Sie die Anzahl der Datensätze im SIZE-Attribut auf die Anzahl der Datensätze in der Eingabedatei setzen, könnte der Leistungsunterschied aufgehoben werden, da die Dateien nicht mehr erweitert werden müssen.

0voto

FredericP Punkte 1050

Sur QTEMP Im Allgemeinen erstellen Sie die Datei einfach mit CRTFILE(*YES)

Der Unterschied könnte einfach die Zeit sein, die benötigt wird, um die Datei zu löschen, bevor sie neu erstellt wird, oder - mit größerem Einfluss - die Zeit, die benötigt wird, um die Datei zu löschen: MBROPT(*REPLACE)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X