IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

"Splitter" le spool


Sujet :

Oracle

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Points : 8
    Points
    8
    Par défaut "Splitter" le spool
    Bonjour j'ai un petit probleme, je m'explique :

    J'ai un script ksh qui fait appel a un fichier sql.
    Celui ci me genere par l'intermediaire du spool un fichier d'environ 500.000lignes.
    Je dois desormais le decouper en n fichiers.

    j'ai donc realise ce script de decoupe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    sqlplus user/passwor @creer_fichier_a_spliter.sql;
     
        if [ $? -ne 0 ]
        then
            echo " Erreur de création du fichier"
        else    
             split -l 1000 fichier_a_spliter
        fi
       exit $?
    Voila mon pb: cela fonctionne avec une requette qui me genere un fichier de 500.000lignes en 10mn mais lorsque je l'execute sur une requette plus complexe (mais qui me genere egalement le meme nombre de lignes) qui tourne pendant 1h30 c'est come si larequette se bloquait...
    je ne rentre a aucun moment dans ce "IF" donc la decoupe ne s'effectue pas...


    a la fin du .sql j'ai pourtant bien mis un "quit;"

    J'espere avoir ete clair.

    Merci d'avance.

    [/code]

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Et combien prend ta requête à s'éxècuter lorsqu'elle est lancé toute seule ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    Bah elle prend 1h30 a exectuer sans le spilt en fait.
    Et lorsque je rajoute le split c comme si elle "tournait en rond", elle me genere bien mon fichier mais apres rien...

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    et la tu kill le traitement au bout de combien de temps ?
    que dit les évènements d'attente lorsque tu es en cours d'éxècution ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    -->et la tu kill le traitement au bout de combien de temps ?
    je le kill au bout de 30mn environ...
    ca doit normalement prendre 5 mn maxi pour decouper
    car apres avoir produit le fichier lorsque je lance "manuellement" un split ca fonctionne en 2mn..


    --->que dit les évènements d'attente lorsque tu es en cours d'éxècution ?
    ???

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    lorsque tu exècute ton fichier ,
    que donne la reuqête suivante :

    select * from v$session_wait
    Bah elle prend 1h30 a exectuer sans le spilt en fait.
    je comprend pas , la requête prend 1h30 et tu la tue au bout de 30 min

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    non non erreur de comprehension je la tue 30 mn apres qu'elle m'ai generee le fichier de sortie...

  8. #8
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    mais qu'est ce qui te dis qu'elle a tout spoolé ? Si tu la "tue" c'est qu'elle n'est pas finie

  9. #9
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    tu fais bien un spool off

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    ba je suis sur qu'elle a tt spoole car lorsque je l'execute seule sans decoupe elle me genere un fichier de taille X
    et lorsque j'ajoute mes 5 lignes de decoupe elle me genere un fichier de X lignes egalement...
    Mais impossible de decouper....
    c'est etrange

  11. #11
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    on peut avoir le détail complet de ce fichier :

    creer_fichier_a_spliter.sql;

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    oui bien sur que j'ai un spool off.
    Ce qui me tracasse c'est que "manuellement" j'arrive a le decouper
    et le pire c'est que le meme script avec une requette qui me sort le meme nombre de ligne (mais en 10mn) cela fonctionne...
    Donc je ne vois que un parametre temps qui pourrait influencer...
    Je ne sais pas quoi faire...

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    Pour le fichier c'est du type:


    "zfsd";"zgzgf";"dfgdfg";"325";"1245141984";"244";"dfgdfg";"dfgdfg";"dfgdf";"dfgdf";"df";"dfg";"dfg"
    et ce sur 500.000 lignes differentes bien sur

  14. #14
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par Batmat01
    ba je suis sur qu'elle a tt spoole car lorsque je l'execute seule sans decoupe elle me genere un fichier de taille X
    et lorsque j'ajoute mes 5 lignes de decoupe elle me genere un fichier de X lignes egalement...
    Mais impossible de decouper....
    c'est etrange
    Non mais attend, c'est pas parce que toutes les lignes sont sélectionnées que la requête est finie hein

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    J'ai toutes mes lignes dans mon fichier, je vois par ex que le fichier a fini d'etre complete a 10h40... et a 12 j'ai toujours rien...
    alors je le kill le Process...
    et ya rien qui n'a ete decoupe et j'ai bien mon bon fichier de sortie avec ses 500.000 lignes....

  16. #16
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    et est ce que tu as toujours une connexion Oracle à midi ?

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    cad?
    en fait je me connecte sur le serveur a distance, je laisse tourner ma requette avec un "nuhup extract.ksh &"

    et voila apres je me reconnecte pour voir 2 h apres et j'ai le probleme que je vous ai explique...

  18. #18
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Si aprés la génèration de ton fichier tu as toujours un connexion Oracle ( rappellons que tu fait un exit ) alors le probléme vient de ta requête .
    Sinon cela vient de ton script Unix

  19. #19
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    pour la 2° fois, c'est pas parce que tu as tout spoolé que la requête est fini, Oracle continue de chercher des lignes même si toi tu sais qu'il n'y en a plus

  20. #20
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    oui mais si je suis mon raisonnement :
    3 cas :

    -J'exectue ma requette seule qui tourne en 1h30 : fonctionne nikel...
    -J'execute la meme requette avec la decoupe : PROBLEME
    -J'execute une autre requette avec la decoupe : ca fonctionne...

    C'est pour ca que je ne comprends pas le pb

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo