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

Administration Oracle Discussion :

purger une table


Sujet :

Administration Oracle

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2006
    Messages : 59
    Points : 38
    Points
    38
    Par défaut purger une table
    Bonjour à tous,

    je me pose des questions sur l'implémentation d'une fonctionnalité qui est censée "purger" une table nommée Upload, qui enregistre les documents, qui vous l'aurez peut-être compris, sont uploadés dans une application.

    J'ai écrit un post sur le forum java (partie servlet/jsp) et en soumettant ma requête, l'un des membres du forum, m'a conseillé de faire une procédure stockée à la place des requêtes.
    Sauf que je n'y connais vraiment presque rien au PL/SQL.
    Est-ce que quelqu'un pourrait me donner son avis et m'indiquer éventuellement comment mettre en place cette procédure stockée svp ?

    voici les requêtes :
    -- groupe de requetes pour nettoyer la table uploads


    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    create table uploads2 as select * from uploads;
     
    truncate table uploads;
     
    insert into uploads (select * from uploads2);
     
    truncate table uploads2;
     
    drop table uploads2;
     
    commit;
    -- groupe de requetes pour supprimer les fichiers inutilises


    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    create table uploads2 as select * from uploads;
     
    delete from uploads2 where uploadid not in (select up_id from bi_up);
     
    truncate table uploads;
     
    insert into uploads (select * from uploads2);
     
    truncate table uploads2;
     
    drop table uploads2;
     
    commit;
    merci d'avance

    et bonne journée

  2. #2
    Membre actif
    Inscrit en
    Novembre 2004
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 312
    Points : 202
    Points
    202
    Par défaut
    Sachant que tu ne peux pas faire simplemment de DDL dans une procédure stockée ( sauf en passant par EXECUTE IMMEDIATE ou autre... ), pourquoi ne gardes-tu pas ton simple script SQL ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2006
    Messages : 59
    Points : 38
    Points
    38
    Par défaut
    Bonjour Davy.g,


    merci pour ta réponse.
    En fait, je pensai faire ça au début mais apparemment, les requêtes ne sont pas très optimisées et on m'a parlé de procèdure stockée dans le post dont je parle plus haut.

    Qu'en penses-tu ? est-ce qu'il y a moyen d'optimiser le sql au moins selon toi ?

    merci d'avance

  4. #4
    Membre actif
    Inscrit en
    Novembre 2004
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 312
    Points : 202
    Points
    202
    Par défaut
    Citation Envoyé par barouz
    Bonjour Davy.g,


    merci pour ta réponse.
    En fait, je pensai faire ça au début mais apparemment, les requêtes ne sont pas très optimisées et on m'a parlé de procèdure stockée dans le post dont je parle plus haut.

    Qu'en penses-tu ? est-ce qu'il y a moyen d'optimiser le sql au moins selon toi ?

    merci d'avance

    Cela dépend de tes temps de traitements !
    Est-ce long ?
    As-tu de grosses volumétries?

    Tu peux peut-être faire mieux sur les DELETE et INSERT, sinon le reste est très rapide !

  5. #5
    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
    je te conseille ceci pour remplacer le 2° paquet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE TABLE uploads2 AS SELECT * FROM uploads WHERE uploadid IN (SELECT up_id FROM bi_up);
     
    ALTER TABLE uploads2 RENAME TO uploads;

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2006
    Messages : 59
    Points : 38
    Points
    38
    Par défaut
    merci pour vos réponses.

    Pour répondre à Davy.g sur la volumétrie, pour l'instant, elle est relativement moyenne mais ça risque certainement d'évoluer,en plus gros. C'est pour ça qu'on m'a demandé de réaliser une fonctionnalité pour purger la table.

    Enfin, si je te comprends bien orafrance, tu me conseilles de mettre la requête sql que tu as écrit à la place du groupe de reqêtes servant à supprimer les fichiers inutilisés, c'est ça ?

    le but final étant ensuite de regrouper ces 2 groupes de requêtes pour les mettre dans une classe d'implémentation Hibernate car je travaille sous environnement j2EE, je ne sais plus si je l'ai déjà dit.
    je vous tiens au courant en tout cas.

    Bon après-midi

  7. #7
    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
    ce que je te conseille c'est d'inséré ce qui est nécessaire plutôt que tout insérer pour en supprimer ensuite... c'est beaucoup plus logique non ? Ensuite, plutôt que vider la table initiale pour remettre les données, tu peux renommer la table qui te conviens

  8. #8
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2006
    Messages : 59
    Points : 38
    Points
    38
    Par défaut
    tu sais la logique et moi, ça fait au moins 3 et encore, je suis gentil.

    c'est vrai quand même que ça paraît plus simple comme tu l'as écrit !

    reste plus qu'à ... maintenant !

    je te teindrai au courant.


Discussions similaires

  1. [Lazarus] Purger une table ?
    Par Syl_87 dans le forum Lazarus
    Réponses: 4
    Dernier message: 09/08/2007, 10h01
  2. "Purger" une table via j2ee
    Par barouz dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 19/04/2007, 10h26
  3. Réponses: 2
    Dernier message: 12/03/2007, 16h05
  4. purger une table d'exception
    Par cesoir dans le forum Oracle
    Réponses: 2
    Dernier message: 23/06/2006, 20h29
  5. [CODE] Purger une table ?
    Par Roi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/09/2003, 16h07

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