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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Avril 2006
    Messages : 59
    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 éclairé
    Inscrit en
    Novembre 2004
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 312
    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
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Avril 2006
    Messages : 59
    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 éclairé
    Inscrit en
    Novembre 2004
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 312
    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
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    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
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Avril 2006
    Messages : 59
    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
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    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

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