Compilation d'expressions

Dans cette section :

La compilation d'expressions en code machine fournit un traitement plus rapide.


Haut de page

x
Compilation d'expressions avec le paramètre DEFINES

Comment :

Deux compilateurs d'expressions sont disponibles sur z/OS. En lançant la commande appropriée, vous pouvez en sélectionner un ou bien désactiver la compilation d'expressions. Les deux compilateurs ne peuvent pas être actifs dans la même requête :

Quelques avantages du compilateur DEFINE sont :

Suite à l'appel d'un compilateur DEFINE, toute requête utilisant une expression DEFINE entraîne la compilation de l'expression, puis son chargement dans le système. Pour chaque enregistrement de la requête qui doit être calculé, le système exécute le code généré. Ce compilateur est le plus efficace dans les requêtes TABLE qui contiennent un grand nombre de champs DEFINE et lisent un grand nombre d'enregistrements. Cela parce que l'allure d'évaluation de chaque enregistrement dans de telles requêtes contrebalance la compilation additionnelle et les étapes de charge.



x
Syntaxe : Compiler des expressions DEFINE

Lancez la commande FOCPARM suivante, une procédure FOCEXEC, ou à la ligne de commande :

SET DEFINES = {COMPILED|OLD}

où :

COMPILED

met en œuvre la compilation d'expressions lors de l'exécution d'une requête, en compilant uniquement les commandes DEFINE utilisées dans la requête.

OLD

confie à la valeur actuelle de SET COMPUTE le soin de contrôler la compilation d'expressions. OLD est la valeur par défaut. Si vous lancez la commande SET DEFINES = OLD, le paramètre COMPUTE est automatiquement réglé sur NEW.



x
Syntaxe : Interroger des expressions DEFINE compilées

Lancez la commande suivante pour interroger la définition actuelle :

? SET DEFINES

Haut de page

x
Compilation d'expressions avec le paramètre COMPUTE

Comment :

Référence :



x
Syntaxe : Contrôler la compilation d'expressions avec le paramètre COMPUTE
SET COMPUTE = {NEW|OLD|NATV}

où :

NEW

compile les calculs DEFINE lors de l'exécution d'une requête.

OLD

ne compile pas les calculs DEFINE lors de l'exécution d'une requête. L'ancienne logique est utilisée.

NATV

compile les calculs DEFINES grâce au compilateur natif. Ce paramètre est également activé par la commande SET DEFINES=COMPILED (la paramètre par défaut).



x
Référence : Notes d'utilisation pour SET COMPUTE

Les calculs suivants ne sont pas compilés avec SET COMPUTE = NEW :



x
Référence : Interaction entre SET DEFINES et SET COMPUTE

Deux compilateurs d'expressions sont disponibles, mais seulement un peut être activé dans une requête. Si vous activez l'un des deux compilateurs, cela désactive l'autre compilateur :

Par conséquent, vous pouvez choisir entre les deux compilateurs en lançant la commande SET DEFINES ; DEFINES=COMPILED sélectionne le nouveau compilateur et DEFINES=OLD sélectionne l'ancien compilateur. Pour désactiver la compilation, lancez la commande SET COMPUTE=OLD.

Il est recommandé d'employer le compilateur NEW dans les requêtes TABLE qui contiennent un grand nombre de champs DEFINE (surtout celles utilisant l'arithmétique condensée ou des expressions de date) et lisent un grand nombre d'enregistrements.

En outre, si une requête TABLE récupère un grand nombre d'enregistrements ou si les champs DEFINE utilisent l'arithmétique condensée (surtout avec des champs longs condensés) ou des expressions de date, il est probable que le compilateur NEW fournisse le plus grand avantage.



x
Référence : Notes sur les commandes DEFINE compilées

Si la compilation n'est pas possible en raison de conditions liées à l'environnement, le traitement s'effectue sans compilation. Aucun message n'est généré indiquant que la compilation ne s'est pas produite. Pour déterminer si elle s'est produite ou non, lancez la commande ? COMPILE.


WebFOCUS