Bonjour à tous,
Je travaille avec SAS V8. J'essaie de rapprocher des informations de plusieurs bases de très petites tailles à une base d'une importante volumétrie ( nombre de lignes > 1 million et plus de 200 variables via PROC SQL ( avec plusieurs LEFT OUTER JOIN )).
Le traitement met au moins 1h à tourner sans créer la table souhaitée.
J'ai le message d'erreur suivant :
ERROR: An I/O error has occurred ON file WORK.#tf0038.n.DATA.
Ci-dessous le Code que j'ai utilisé.
J'ai compressé ( option compress=yes) ça ne change pas grand chose.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 rsubmit; proc sql; create index var1 on malib.matable(var1); create index var2 on malib.matable(var2); create index var3 on malib.matable(var3); create index var4 on malib.matable(var4); create index var5 on malib.matable(var5); create index var6 on malib.matable(var6); create index var7 on malib.matable(var7); create index var8 on malib.matable(var8); create index var9 on malib.matable(var9); quit; endrsubmit; rsubmit; proc sql ; create table malib.matable as select a.*, b.var_a as nomvar_a_1, c.var_a as nomvar_a_2, d.var_b as nomvar_b, e.var_c as nomvar_c_1, f.var_c as nomvar_c_2, g.var_d as nomvar_d_2, h.var_e as nomvar_e_2, i.var_f as nomvar_f_1, j.var_f as nomvar_f_2 from malib.matable as a left outer join malib2.matable1 as b on a.var1=b.var1 left outer join malib2.matable1 as c on a.var2=c.var1 left outer join malib2.matable2 as d on a.var3=d.var2 left outer join malib2.matable3 as e on a.var4=e.var3 left outer join malib2.matable3 as f on a.var5=f.var3 left outer join malib2.matable4 as g on a.var6=g.var4 left outer join malib2.matable5 as h on a.var7=h.var5 left outer join malib2.matable6 as i on a.var8=i.var6 left outer join malib2.matable6 as j on a.var9=j.var6 ; quit; endrsubmit;
J'ai nettoyé ma WORK (en local) ça ne change rien.
La vérification de la WORK sur le serveur montre qu'elle n'est pas "saturée". Le traitement est toujours long.
J'ai fais un test sur un échantillon de la grosse bas ( 10 000 lignes), je n'ai pas le message d'erreur concernant la WORK (!!!!) mais le traitement mais néanmoins plus de 35 mn.
J'ai besoin d'aide et je sais que je peux compter sur vous.
Merci d'avance.
Partager