Dans cette section : |
La compilation d'expressions en code machine fournit un traitement plus rapide.
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.
Lancez la commande FOCPARM suivante, une procédure FOCEXEC, ou à la ligne de commande :
SET DEFINES = {COMPILED|OLD}
où :
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.
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.
Comment : Référence : |
SET COMPUTE = {NEW|OLD|NATV}
où :
compile les calculs DEFINE lors de l'exécution d'une requête.
ne compile pas les calculs DEFINE lors de l'exécution d'une requête. L'ancienne logique est utilisée.
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).
Les calculs suivants ne sont pas compilés avec SET COMPUTE = NEW :
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.
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 |