Limiter les étapes DATA
Dans la série optimisation et tuyaux, voici le premier d’une série de conseil pour l’optimisation de vos programme SAS.
Pour des raisons de simplification et de méconnaissance du produit SAS, nous avons tous débuté en créant une multitude d’étape data inutiles. Ces étapes sont coûteuses aussi bien en terme de CPU qu’en terme d’I/O (accès disques entrée/sorties ou Input/Output).
Quand une table est d’une grande volumétrie, essayez de ne la lire qu’une seule fois et de créer toutes les tables dépendantes en un seul passage, vous gagnerez toutes les lectures successives de cette table SAS.
/* ****************************************** */
/* Site : http://www.formations-sas.fr - 2009 */
/* */
/* Tuyaux - Performances, Optimisation SAS */
/* GAIN : CPU - IO */
/* */
/* Auteur : Pascal MAUBERT */
/* ****************************************** */
/* ACCEPTABLE */
data tablea;
set db.master;
if flag1;
run;
data tableb;
set db.master;
if flag1 and age < 21;
run;
data tablec;
set db.master;
if flag1 and age >= 21;
run;
/* PLUS EFFICACE */
data tablea tableb tablec;
set db.master;
if flag1 then do;
output tablea;
if age < 21 then output tableb;
else output tablec;
end;
run;
/* ****************************************** */
/* Site : http://www.formations-sas.fr - 2009 */
/* Auteur : Pascal MAUBERT */
/* ****************************************** */
