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 :

Avant un delete avec condition, drop ou unusable des index ?


Sujet :

Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 63
    Points : 56
    Points
    56
    Par défaut Avant un delete avec condition, drop ou unusable des index ?
    Bonjour,

    Je travaille sur l'alimentation d'une base Oracle 11g avec Talend.
    En fin d'alimentation, j'ai une table T de 25 colonnes, dont 12 index (11 clés étrangères et dateD), contenant 16 millions de lignes.
    Je veux faire un delete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    delete 
    from T
    where T.dateD<(sysdate-9521)
    dateD étant un . J'ai environ 10 millions de lignes qui sont supprimées mais cela prend 8h...

    Pour accélérer ce delete, j'hésite entre 2 solutions :
    1-je drop les 11 index (dateD non-compris), je fais le delete, je re-cré les 11 index.
    2-je rends UNUSABLE les 11 index, je fais le delete, je REBUILD les index.

    Que me conseillez-vous ?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 63
    Points : 56
    Points
    56
    Par défaut
    Mon sujet reprend un peu le thème abordé récemment
    http://www.developpez.net/forums/d11...base-solution/
    Mais je n'ai pas trouvé de réponse à mon cas.

    Pour complément d'information,
    Il y a une première "grosse purge" (10millions de lignes) la table T.
    Puis c'est une alimentation mensuelle et donc le delete devra parcourir les 6 millions (+300 000 chaque mois) de lignes de la table T.
    Après ma base infocentre contient une centaine de tables, la table T étant utilisé comme table de dimension.

  3. #3
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut
    il tas choses qui alourdissent le DELETE. parmis ces choses; les contraintes, les triggers, le nombre de segment d'annulation(undo à partir de 9i)...
    d'avoir Pensé à voter positivement pour ceux qui vous ont aidés et surtout à mettre si le cas.
    ça encourage.

  4. #4
    Expert éminent sénior 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
    Points : 11 252
    Points
    11 252
    Par défaut
    Voir si ce n'est plus intéressant de créer une nouvelle table T_N avec ce qui devrait rester de la table T après purge, détruire la table T et renommer la table T_N en T, etc.

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/08/2013, 16h30
  2. [SQL Server 2005] Delete avec conditions
    Par dkmix dans le forum Développement
    Réponses: 6
    Dernier message: 24/01/2011, 17h36
  3. Erreur sur DELETE avec condition sur un DATETIME
    Par Luke58 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 25/08/2009, 12h00
  4. toujours des problemes avec ce DROP
    Par Missvan dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 18/02/2004, 08h43
  5. boucle avec condition d'arret changeante
    Par NicoH dans le forum Langage
    Réponses: 3
    Dernier message: 10/06/2003, 11h48

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