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

SQL Oracle Discussion :

incrémentation automatique de clé


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 75
    Par défaut incrémentation automatique de clé
    Bonjour,

    Mon programme PERL fais une tres grande nombre d'insertions. Je risque de passer 30heures à attendre...
    En un mot:
    - mon programme perl reçoit un fichier d'entrée avec beaucoup de données, les traite puis prépare les requetes SQL pour les mettre ensuite dans un fichier de sortie
    - SQLLOADER charge ces données

    ce que je vois comme solution, c'est couper ce fichier d'entrée en plusieurs petits fichiers , ça ira plus vite.

    le problème c'est que j'aurai des problèmes de gestion de clé primaire de la base, car SQLLOADER me semble incapable de gérer la clé primaire (incrémenter d'une manière automatique). Est il vrai ?

    Avez vous des idées pour résoudre ce problème

    merci d'avance

    Cathy

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 316
    Par défaut
    essaye le lien
    http://www.developpez.net/forums/sho...OADER+sequence

    cela devrait t'aider

  3. #3
    Membre chevronné
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Par défaut
    Vous pouvez aussi dans votre cas utilser une table externe

  4. #4
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2007
    Messages : 126
    Par défaut
    Bonsoir,

    Celà semble compliqué, pourquoi passer par un fichier intermédiaire et ne pas insérer directement ? Gain en io.

    Pour la clef on peut utiliser un trigger, comme celà a déjà étè débattu dans ce forum.

    Essayez de donner plus d'indications, pour que l'on vous aide plus facilement.

    Cdt

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2007
    Messages : 53
    Par défaut
    oui comme a dit deadoralive tu peux utilser un trigger gérant une séquence d'auto-incrementation a chaque nouvelle insertion dans ta table

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 75
    Par défaut alors...
    Je me dis que faire des insertions via 1 langage nécessite une connexion à la base, la gestion I/O dans la base n'est pas forcément aussi rapide par rapport à PL/SQL ou SQLLOADER. J'hésitais même à ecrire mon programme en PL/SQL mais finalement, comme PL/SQL n'est pas fort pour faire beaucoup de traitement (calcules) j'ai changé d'idée en utilisant quand même un fichier de sortie de SQL pour SQLLOADER load après dans la base

    L'histoire de Séquence est très bien. Ca a résolu une partie de mon problème: les tables 'libres'. J'ai aussi des tables dépendantes: 2 tables donc une contient 1 clé étangrère pointant sur la première. Je dois connaitre dans mon programme la valeur de la clé de la premièra table pour la mettre dans la deuxième, que dois je faire ?

    Merci

    Cathou

  7. #7
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2007
    Messages : 126
    Par défaut
    Bonjour,

    En reprenant l'idée d'argoet des tables externes, on peut lire les données des fichiers directement, faire les traitements en PL, et insérer dans la base. Ce qui devrait etre le plus efficace. Rien n'empêche non plus de faire des proc java dans le PL s'il est dépassé.

    La gestion des pipes pourrait aussi être une piste pour améliorer les perfs.

    Cdt

Discussions similaires

  1. Incrémentation automatique
    Par otravaglini dans le forum Access
    Réponses: 6
    Dernier message: 28/06/2006, 10h20
  2. Incrémentation automatique entre 2 chiffres
    Par fordiste dans le forum Access
    Réponses: 2
    Dernier message: 24/06/2006, 06h33
  3. Problème d'incrémentation automatique
    Par ist2008 dans le forum Access
    Réponses: 3
    Dernier message: 19/04/2006, 20h21
  4. Problème d'incrémentation automatique
    Par ist2008 dans le forum Access
    Réponses: 1
    Dernier message: 19/04/2006, 14h30
  5. incrémenter automatiquement un champ d'un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 8
    Dernier message: 01/09/2005, 08h42

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