Caractéristiques
: |
 |
 |
- Catégories : SAS/Base
- OS : Windows, Unix, z /Os
- Version : SAS® 9.1.3
- Vérifié le 01/12/2006
|
 |
 |
Les nouveautés de la PROC
SORT
La procédure SORT permet de trier des tables SAS. Découvrez
les nouvelles options disponibles depuis SAS®9.
L’option DATECOPY
La procédure SORT permet de trier une table en indiquant une table
en sortie. Par défaut, les attributs ‘date et heure de création’
et ‘date et heure de modification’ de la table en sortie correspondent
à la date et l’heure de l’exécution de la procédure
SORT.
L’option DATECOPY permet de créer la table en sortie sans
mettre à jour ces attributs : elle hérite directement des
attributs de la table principale.
Exemple 1 : la table est triée sans l’option
DATECOPY. Le code est soumis à 13h32 le 20/11/06 :
proc sort data=sashelp.class out=sorted ;
by name ;
run ;
La date et l’heure de création et de modification ont été
mises à jour avec le jour et l’heure système :
Exemple 2 : la table est triée avec
l’option DATECOPY. Le code est soumis à 13h40 le 20/11/06
:
proc sort data= sorted out=sorted datecopy ;
by name ;
run ;
La date et l’heure de création et de modification n’ont
pas été mises à jour.

L’option DUPOUT
Cette option permet d’indiquer une table en sortie dans laquelle
seront copiées les observations en doublon. Elle doit être
utilisée avec les options NODUPKEY ou NODUPREC :
NODUPKEY supprime les observations dont la clé de tri est en doublon
(instruction BY)
NODUPREC supprime les observations dont toutes les variables sont en doublons.
Exemple : La table work.table contient deux lignes identiques (n°3
et 6).
Exécution
du programme SAS ci-dessous :
proc sort data=table out=out nodupkey DUPOUT=dupocc ;
by A ;
run ;
La table en sortie du tri ne contient plus de doublon. |
La table qui contient les doublons a une observation
:  |
L’option OVERWRITE
Par
défaut, lors d’un tri, des fichiers temporaires sont créés,
multipliant par 3 l’espace disque utilisé.
Par exemple, la table WORK.CLASS a une taille de 45 Mo. Lors d’un
tri simple, 2 tables temporaires vont être créées
(un fichier ‘SAS Utility’ et un fichier ‘LCK’),
puis supprimées une fois l’exécution terminée.
Au total, le tri aura utilisé environ 154 Mo.
proc sort data=class ;
by name ;
run ;
1) le fichier UTILITY est créé dans la bibliothèque
WORK,
2) le fichier LCK est créé dans la bibliothèque
WORK,
3) la table principale est mise à jour,
4) les fichiers UTILITY et LCK sont supprimés.
L’option
OVERWRITE évite la création du fichier LCK. L’exemple
ci-dessous décrit les étapes de l’exécution.
options sortpgm=SAS ;
proc sort data=class overwrite thread ;
by name ;
run ;
1) le fichier UTILITY est créé dans un sous-répertoire
de la WORK,
2) la table CLASS est vidée.
3) les observations triées sont chargées dans la table
CLASS directement :

4) le fichier UTILITY est supprimé.
Utilisez cette option uniquement lorsqu’il existe une sauvegarde
de la table en entrée ou qu’elle peut facilement être
recréée et réalimentée. En effet, s’il
se produit une erreur lors du tri, toutes les données seront perdues.
Cette option n’est pas compatible avec l’option TAGSORT. En
revanche, il faut s’assurer que le tri sera de type SAS et qu’il
sera multithreadé.
L’option THREADS|NOTHREADS
Cette option active ou désactive l’exécution en multiprocessus
d’un tri.
- Exemple 1 : le tri n’est pas multithreadé. Le temps d’exécution est de 14.04 secondes.
13 proc sort data=class nothread ;
14 by age name ;
15 run ;
NOTE: There were 950000 observations read from the data set WORK.CLASS.
NOTE: SAS sort was used.
NOTE: The data set WORK.CLASS has 950000 observations and 6 variables.
NOTE: PROCEDURE SORT used (Total process time):
real time 14.04 seconds
cpu time 1.75 seconds
- Exemple 2 : le tri est multithreadé. Le temps
d’exécution est de 9.90 secondes.
23 proc sort data=class thread ;
24 by age name ;
25 run ;
NOTE: There were 950000 observations read from the data set WORK.CLASS.
NOTE: SAS threaded sort was used.
NOTE: The data set WORK.CLASS has 950000 observations and 6 variables.
NOTE: PROCEDURE SORT used (Total process time):
real time 9.90 seconds
cpu time 4.45 seconds
Si vous souhaitez connaître toutes les nouvelles
options des procédures SAS depuis l’arrivée de SAS9,
vous pouvez consulter :
Céline Dastre-Vigne
Consultant Support Clients - SAS France
|