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

PL/SQL Oracle Discussion :

Différence d'efficacité entre spool et utl_file


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Par défaut Différence d'efficacité entre spool et utl_file
    Bonjour,


    J'ai l'occasion d'utiliser ces deux fonctions, spool et utl_file pour écrire des fichiers, et j'ai un peu du mal à me rendre compte de ce qui est le plus efficace.

    D'un coté, j'ai spool qui m'a l'air de travailler plutôt en ensembliste, mais qui m'impose d'écrire mes données sur mon serveur local, donc je dois perdre pas mal de temps sur le transfert je pense.

    De l'autre coté, j'ai UTL_FILE, qui bosse directement coté serveur, mais qui implique que j'inscrive ma requête dans un curseur que je parcours ligne à ligne...



    Quels vont être les facteurs qui vont influencer la vitesse de l'un ou de l'autre ? Est ce qu'il y a en a un qui est forcément plus rapide ou dans certaines conditions l'un est préférable à l'autre ? (Seul la vitesse m'importe, le lieu où seront extraites les données n'a pas d'importance.)


    Merci d'avance pour vos réponses.


    Steven

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Spool c'est une commande sqlplus, UTL_FILE est un package noyau. Spool génère le fichier sur la machine où il a été lancé: ça peut bien être un poste client. UTL_FILE génère le fichier uniquement sur le serveur de base des données. Pour moi en dépit du fait que les deux génèrent des fichiers ils répondent à des demandes assez différente et ne couvrent pas toujours la même fonctionnalité.

    Du point de vue des vitesse d'écriture les deux utilisent finalement des appel à des fonctions noyau du système d'exploitation. Dans ces conditions ce qui fait vraiment la différence dépende plus souvent en pratique de leur (mauvaise ou bonne) utilisation, des petits ajustement d'optimisation étant possible dans les deux cas.

    Dire que le spool est plus ensembliste que Utl_File est légèrement à coté de la plaque. En encore une fois il ne couvre pas la même fonctionnalité que Utl_File donc les comparaisons sont un peu bancales.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Différence d'efficacité entre List et tableaux
    Par OshiSensei dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 14/02/2012, 14h08
  2. API qui donne la différence des données entre 2 classes ?
    Par elitost dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 18/04/2006, 11h07
  3. Réponses: 6
    Dernier message: 06/12/2005, 16h51
  4. [Rave] Différence de langue entre exécution et design
    Par RamDevTeam dans le forum Composants VCL
    Réponses: 2
    Dernier message: 29/11/2005, 11h49
  5. Différences d'affichage entre IE et FF
    Par Tot-O dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 22/09/2005, 18h47

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