Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/01/2008, 16h00   #1
Membre habitué
 
Inscription : juillet 2006
Messages : 284
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 284
Points : 107
Points : 107
Par défaut Optimisation avec du code HASH

Bonjour tout le monde,

est ce que quelqu'un peut m'aider à transformer le code suivant en code HASH SVP ?

Code :
1
2
3
4
5
6
7
8
9
DATA SIAU ;
MERGE
AU1.SI67SIAU(IN = A KEEP = &SELSI TYPREC TYPSIN NBRQUART WHERE = &WHERAU)
AU1.SI67UPAU(KEEP = NMSIN UP DTREGUP DTRECUP ETATUP UPSPEC)
AU.SI67SIAU(IN = B KEEP = &SELSI TYPREC TYPSIN NBRQUART WHERE = &WHERAU)
AU.SI67UPAU(KEEP = NMSIN UP DTREGUP DTRECUP ETATUP UPSPEC);
BY NMSIN;
IF A AND ETATSIN NOT IN ('1','3') THEN DELETE;
RUN;
Merci.

ash_rmy.
ash_rmy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2008, 16h31   #2
Membre chevronné
 
Avatar de steelspirit
 
Inscription : janvier 2008
Messages : 420
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2008
Messages : 420
Points : 739
Points : 739
Envoyer un message via MSN à steelspirit
Bonjour,

Le hash code n'est utile que si tu travailles avec de grosses tables et que tu as des problèmes de performances...sinon vaut mieux utilisé un data step classique Perso j'y ai jamais touché.

voici la doc pour t'aider :
http://www.sas.com/offices/europe/fr...200703_a1.html
http://support.sas.com/rnd/base/data...ng-started.pdf

Bon courage,
Steel
steelspirit est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/01/2008, 17h44   #3
Membre habitué
 
Inscription : juillet 2006
Messages : 284
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 284
Points : 107
Points : 107
ok merci.

la table SIAU a 1 146 175 observations donc j espere bien avoir des performances au final.

ash_rmy.
ash_rmy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 09h59   #4
Membre habitué
 
Inscription : juillet 2006
Messages : 284
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 284
Points : 107
Points : 107
salut,

je me demande si mon programme revient à ecrire :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
DATA table1; /* nbr obs = 905010 */
SET
AU1.SI67SIAU(KEEP = &SELSI TYPREC TYPSIN NBRQUART WHERE = &WHERAU)
AU1.SI67UPAU(KEEP = NMSIN UP DTREGUP DTRECUP ETATUP UPSPEC);
run;
 
DATA table2; /* nbr obs = 884431 */
SET
AU.SI67SIAU(KEEP = &SELSI TYPREC TYPSIN NBRQUART WHERE = &WHERAU)
AU.SI67UPAU(KEEP = NMSIN UP DTREGUP DTRECUP ETATUP UPSPEC);
run;
 
PROC SORT DATA = TABLE1; BY NMSIN; RUN;
 
PROC SORT DATA = TABLE2; BY NMSIN; RUN;
 
DATA SIAU; /* 878 055 */
MERGE
table1 (IN = a) table2 (IN = b);
BY NMSIN;
IF A AND ETATSIN NOT IN ('1','3') THEN DELETE;
RUN;
merci.

ash_rmy.
ash_rmy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 16h13   #5
Membre chevronné
 
Avatar de steelspirit
 
Inscription : janvier 2008
Messages : 420
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2008
Messages : 420
Points : 739
Points : 739
Envoyer un message via MSN à steelspirit
Non ça ne revient pas à la même chose ... dans le premier cas tu fait un merge sur 4 tables et dans le 2ème cas tu fais 2 set et 2 merge ...

Essaie avec un proc SQL tu aura peut etre de meilleurs performances...
steelspirit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2008, 14h31   #6
Membre habitué
 
Inscription : juillet 2006
Messages : 284
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 284
Points : 107
Points : 107
ok merci steelspirit.

j'ai demandé à un formateur SAS de le transformer, il ne savait pas.

mais c'est pas grave.

ash_rmy.
ash_rmy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h09.


 
 
 
 
Partenaires

Hébergement Web