Formeln kompilieren

In diesem Abschnitt:

Wenn Sie Formeln in Computercode kompilieren, führt dies zu einer schnelleren Verarbeitung.


Nach oben

x
Formeln mit dem DEFINES-Parameter kompilieren

Vorgehensweise:

Es sind auf z/OS zwei Formel-Compiler verfügbar. Indem Sie den entsprechenden Befehl ausgeben, können Sie einen auswählen oder die Kompilierung von Formeln deaktivieren. Es können nicht beide Compiler für dieselbe Anfrage aktiviert sein:

Zu den Vorteilen des DEFINE-Compilers gehören:

Nachdem der systemeigene DEFINE-Compiler aufgerufen wurde, führt jede Anfrage, die eine DEFINE-Formel verwendet, dazu, dass die Formel kompiliert und dann in das System geladen wird. Das System führt für jeden Datensatz der Anfrage, der Berechnung benötigt, den erzeugten Code aus. Dieser Compiler ist am effektivsten mit TABLE-Anfragen, die eine große Anzahl DEFINE-Felder enthalten, und eine große Anzahl Datensätze lesen, da die Geschwindigkeit der Auswertung pro Datensatz in solchen Anfragen die zusätzliche Kompilierung und Ladeschritte ausgleicht.



x
Syntax: DEFINE-Formeln kompilieren

Geben Sie den folgenden Befehl FOCPARM aus, eine FOCEXEC oder in der Befehlszeile:

SET DEFINES = {COMPILED|OLD}

Hierbei gilt:

COMPILED

Implementiert Formelkompilierung zur Ausführungszeit der Anfrage, und kompiliert nur die DEFINEs, die in der Anfrage verwendet werden.

OLD

Überlässt die Formelkompilierung der Steuerung des aktuellen SET COMPUTE-Werts. OLD ist der Defaultwert. Wenn Sie den Befehl SET DEFINES = OLD ausgeben, wird der Parameter COMPUTE automatisch auf NEW eingestellt.



x
Syntax: Kompilierte DEFINE-Formeln abfragen

Geben Sie den folgenden Befehl aus, um die aktuelle Einstellung abzufragen:

? SET DEFINES

Nach oben

x
Formeln mit dem COMPUTE-Parameter kompilieren

Vorgehensweise:

Referenz:



x
Vorgehensweise: Einen berechneten Wert löschen

Im Tab Computes:

  1. Klicken Sie auf den Abwärtspfeil rechts neben der Kombobox Feld.

    Dies zeigt eine Dropdown-Liste an, die alle berechneten Werte für diesen Report enthält.

  2. Wählen Sie das gewünschte Feld aus.

    Dieser Vorgang zeigt die entsprechenden Informationen in der Kombobox Feld, der Dialogbox Format und Formelbox an.

  3. Klicken Sie auf den Löschen-Button.

Das Feld ist nicht mehr verfügbar.



x
Syntax: Formelkompilierung mit dem Parameter COMPUTE steuern
SET COMPUTE = {NEW|OLD|NATV}

Hierbei gilt:

NEW

Kompiliert DEFINE-Berechnungen, wenn eine Anfrage ausgeführt wird.

OLD

Kompiliert DEFINE-Berechnungen nicht, wenn eine Anfrage ausgeführt wird. Es wird die alte Logik verwendet.

NATV

Kompiliert DEFINE-Berechnungen mit dem systemeigenen Compiler. Diese Einstellung wird auch aktiviert durch den Befehl SET DEFINES=COMPILED, welcher die Default-Einstellung ist.



x
Referenz: Verwendungshinweise für SET COMPUTE

Die folgenden Berechnungen werden nicht mit SET COMPUTE = NEW kompiliert:



x
Referenz: Interaktion zwischen SET DEFINES und SET COMPUTE

Es sind zwei Formel-Compiler verfügbar, aber es kann für eine Anfrage jeweils nur einer aktiviert werden. Wenn Sie einen Compiler aktivieren, wird der andere automatisch deaktiviert:

Sie können daher einen der Compiler auswählen, indem Sie den Befehl SET DEFINES ausgeben. DEFINES=COMPILED wählt den neuen Compiler aus, DEFINES=OLD wählt den alten Compiler aus. Um Kompilierung zu deaktivieren, geben Sie SET COMPUTE=OLD aus.

Der neue Compiler wird empfohlen für TABLE-Anfragen, die eine große Anzahl DEFINE-Felder enthalten (besonders solche, die gepackte arithmetische oder Formeln oder Datumsformeln verwenden) und eine große Anzahl Datensätze lesen.

Wenn eine TABLE-Anfrage eine große Anzahl Datensätze abruft, oder wenn die DEFINE-Felder gepackte arithmetische Formeln (insbesondere mit langen gepackten Feldern) oder Datumsformeln verwenden, ist der neue Compiler wahrscheinlich besser geeignet.



x
Referenz: Verwendungshinweise für kompilierte DEFINEs

Wenn keine Kompilierung möglich ist wegen Umgebungsbedingungen, wird die Verarbeitung ohne Kompilierung durchgeführt. Es wird keine Meldung erzeugt, dass die Kompilierung nicht stattgefunden hat. Um zu bestimmen, dass sie stattgefunden hat, geben Sie den Befehl ? COMPILE aus.


WebFOCUS