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 :

Accès concurents


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 57
    Par défaut Accès concurents
    Bonjour à tous,

    J'ai une petite question à laquelle les 'experts' Oracle locaux n'ont pas su me donner une réponse définitive.

    Voila, j'ai un ensemble de scripts PL/SQL à lancer pendant toutes les nuits (le traitement prends au minimum 1h), sur une base (appellée base de stat) elle même clonée dans la nuit à partir d'une base existante (oui, c'est tordu )


    La question est :
    Si je lance mes scripts en plein milieu de l'import de la base de stat, est ce que mon traitement va être différé à la fin de l'import?

    Merci d'avance

    Edition : c'est du 8i

  2. #2
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 888
    Par défaut
    Bonjour,

    Si j'ai bien compris la question, tu ne sais pas trop si pendant une opération lourde d'insert/update un autre script peut calculer des données sur la table ?

    Je pense que c'est dangereux. Il existe des moyens de poser des LOCK sur les tables qui sont concernées par les import, me semble-t-il, avec par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LOCK TABLE une_table IN EXCLUSIVE MODE;

  3. #3
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 57
    Par défaut
    Si l'expression

    opération lourde d'insert/update
    Comprends également un import de base (réalisé à partir de imp.exe) alors oui, ca répond...

    (et je voulais pas cette réponse )

  4. #4
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 888
    Par défaut
    Désolé, j'ai pas les yeux en face des trous sur ce coup là ! Je viens de relire ton message, ma réponse est un peu hors sujet

    Donc pour bien faire je vais te répondre
    En fait ton import va "commit" les données importées à la fin du script d'import, si je comprend bien. Donc, si tu lances ton script avant, il fonctionnera, mais avec les données avant le commit final de l'import.

    Il existe une option avec imp.exe, tu peux spécifier le paramètre COMMIT=Y, pour améliorer le fonctionnement que j'ai décrit, mais je crains que tu ne sois ennuyé par rapport à la cohérence des données non ? Car je suppose que tes calculs doivent s'effectuer une fois l'import terminé, pour être cohérents..

    Si tu as un moyen de lancer le processus d'import en batch, tu peux récupérer les lignes retournés par le programme. Une fois que tu récupères la ligne "Import terminated successfully" tu pourras donc déclencher tes scripts PL/SQL..

    J'espère ne pas être à coté de la plaque ce coup-ci

  5. #5
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut Re: Accès concurents
    Citation Envoyé par Endymion222
    Si je lance mes scripts en plein milieu de l'import de la base de stat, est ce que mon traitement va être différé à la fin de l'import?
    Non ! Un SGBD, de manière générale, est conçu pour traiter les différentes demandes en même temps.
    Donc Oracle fera l'import et exécutera vos scripts en même temps, même si fonctionnellement ça n'a aucun sens pour vous.

    Si vous avez une certaine chronologie à respecter dans vos traitements, c'est à vous de la prendre en charge (et pas en bricolant avec des LOCK !!!)

    Un petit script qui fait
    1- import
    2- traitements PL/SQL
    ce n'est pas possible dans votre contexte ?

  6. #6
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 888
    Par défaut Re: Accès concurents
    Citation Envoyé par Pomalaix
    Si vous avez une certaine chronologie à respecter dans vos traitements, c'est à vous de la prendre en charge (et pas en bricolant avec des LOCK !!!)
    Bonjour,

    Quel problème vois-tu aux LOCK ?

  7. #7
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 57
    Par défaut
    Aie...

    Disons que je comptais dissocier complement le lancement de l'un et de l'autre (le Service informatique local gère la MAJ, nous, on gère le reste)

    Y a t'il moyen de réaliser un lock général ?

    Je sens que ca va tourner à la bidouille pas belle du tout ca...

  8. #8
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 57
    Par défaut
    Solution trouvée !!!


    Avant de lancer mes procédures, je fais un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select count(*) from v$session where program='IMP'
    Note : 'IMP' à confirmer/tester


    Tant que j'ai un résultat, j'attends (1/4 d'heure par exemple)

    Merci beaucoup de votre aide

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

Discussions similaires

  1. Acces concurents sur un fichier
    Par TobyKaos dans le forum Langage
    Réponses: 4
    Dernier message: 06/03/2006, 23h30
  2. Accès concurents sur fichier log
    Par Amnesiak dans le forum Langage
    Réponses: 7
    Dernier message: 08/02/2006, 23h00
  3. Pb d'accès concurents et de deadlock
    Par Cazaux-Moutou-Philippe dans le forum Bases de données
    Réponses: 14
    Dernier message: 26/01/2006, 21h38
  4. Accès concurants
    Par John Fullspeed dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 05/11/2004, 09h38
  5. Accès concurent et ActiveX
    Par nico-pyright(c) dans le forum MFC
    Réponses: 3
    Dernier message: 15/06/2004, 15h44

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