|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : juin 2010 Messages : 3 ![]() |
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é. Code :
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. |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() |
http://support.sas.com/kb/12/135.html
Je pense que tu exploses l'espace de stockage. Tu peux relancer ton programme et surveiller la work si tu es sous unix tu peux lancer la commande sous le répertoire ou se trouve la work .
__________________
Consultez les FAQs et les anciens postes avant de poser vos questions. Merci
|
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Fabien Inscription : novembre 2008 Messages : 59 ![]() |
Salut,
As tu testé avec les HASH? Regarde ce lien : http://www.sas.com/offices/europe/fr...200703_a1.html Suistrop |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
bonjour,
tu fais deux submit au serveur. A quel moment rencontre tu le problème? A ce que je comprends tu travailles sur une librairie en mode serveur donc il est inutile de nettoyer ta work locale. Tu peux également essayer de limiter l'utilisation des variables de tes tables via un keep. Après, sans être un grand connaisseur, la solution via des hash proposée par suistrop, peut démontrer des performances très intéréssantes... |
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() Géraldine CADE DESCHAMPSSupport Clients SAS (France et Europe) Inscription : février 2010 Messages : 62 ![]() |
Bonjour,
Je suis sceptique pour le hash : les données seraient stockées uniquement en mémoire. Si la volumétrie est importante, ça suppose de la RAM ! De plus le code hash est une nouveauté SAS 9, or vous êtes en 8.2. Je vous recommande 1. de découper l'unique PROC SQL en plusieurs 2. de tester avec un MERGE 3. de faire pointer la WORK vers disque ayant + d'espace libre 4. éventuellement d'utiliser cleanwork pour libérer de l'espace sur le disque hébergeant la WORK actuellement. Cet utilitaire supprime les dossiers WORK fantômes. Géraldine Cade-Deschamps Support Clients SAS |
|
|
10
|
|
|
#6 |
|
Invité de passage
![]() Inscription : juin 2010 Messages : 3 ![]() |
Merci à tous pour votre aide.
J'ai utilisé plusieurs "merge" comme l'a suggéré Géraldine_Cade_SAS. Le traitement est très très rapide et se passe sans problème. Par ailleurs il me semblait avoir lu quelque part qu'il "n y avait pas de différence" entre jointure avec sql et jointure avec merge. Cela à l'air de ne pas être toujours vrai !!!!!!! Merci à tous une fois encore. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com