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 :

Delete de masse


Sujet :

Oracle

  1. #1
    Membre habitué
    Homme Profil pro
    CMA-CGM
    Inscrit en
    Novembre 2005
    Messages
    531
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : CMA-CGM
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2005
    Messages : 531
    Points : 137
    Points
    137
    Par défaut Delete de masse
    Petite question ...

    D'après vous, lors d'un delete de masse, est-il préférables de mettre 'UNUSABLE' les index des tables deletées (et ensuite les rebuilter tranquillos !) ... Si oui, les index bitmaps doivent-ils aussi être UNUSABLE ?
    Quelles sont les recommandations d'Oracle... et les vôtre,chers administrateurs Oracle du forum...

    Merci pour vos réponses...

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Bonjour ,
    Dommage que nous n'en sachions pas plus sur vote delete en masse .
    Si vous supprimez effectivement enomrmément de lignes voila une solution parmit d'autres et qui peut donner des résultat correct /

    - Creation d'une table tampon ( as select .. ) en ne gardant que les lignes voulus
    - Drop de l'index
    - Truncate de l'index
    - Insert as select de la table tampon vers la table initiale
    - Re création de l'index
    - Calcul des stats

    Vous repartez ainsi avec une table , HWM , index et stats "propres"

    Jaouad

  3. #3
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 119
    Points : 74
    Points
    74
    Par défaut
    En cas de DELETE en masse, mon conseil est de mettre à UNUSABLE tous les index de la table concernée :
    -> pour les index b-tree, ca a l'avantage d'accelerer le traitement par rapport à s'ils étaient restes actifs (attention toutefois, sur une table possedant de tres nombreux index, le cout d'un rebuild peut s'averer plus lourd qu'une procedure de DELETE avec index valides)
    -> pour les index bitmap, je dirai qu'il est quasi obligatoire de les mettre à UNUSABLE tellement leur evolution (au niveau utilisation espace disque) peut etre importante (cela est lié a la structure meme d'un index bitmap), ce qui a pour consequence de ralentir le traitement et de risquer des saturations d'espace disque...

    mais d'une maniere generale, le mieux est de pouvoir tester différents scénarios sur une base de bench, car comme souvent la solution dépendra des specificités de ta base...

  4. #4
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 119
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par Jaouad
    - Creation d'une table tampon ( as select .. ) en ne gardant que les lignes voulus
    - Drop de l'index
    - Truncate de l'index
    - Insert as select de la table tampon vers la table initiale
    - Re création de l'index
    - Calcul des stats
    Pour ma culture, quelle est la raison qui te pousse a repositionner tes données dans la table d'origine ? Ne serait-il pas plus simple de faire un RENAME de la table tampon ?

  5. #5
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Pour deux raisons principales .

    Il n'y a pas que des index sur une table , il peur y avoir des triggers ... et mon expérince perso m'a souvent démontré que l'on oublie toujours un objet portant sur ta table et qui reste invalide

    Pour libérer les extents qui sont utilisés par la création tampon , et réutiliser ceux de la table maitre

    Jaouad

    PS : c'est peut être pas trés clair

  6. #6
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 119
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par Jaouad
    PS : c'est peut pas trés clair
    Si si, c'est tout à fait clair !
    Merci pour les précisions !

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

Discussions similaires

  1. [2008R2] Réduction automatique du journal suite delete en masse
    Par castorameur dans le forum Administration
    Réponses: 5
    Dernier message: 21/01/2015, 13h36
  2. Delete de masse (suite)
    Par boutss dans le forum SQL
    Réponses: 34
    Dernier message: 14/12/2010, 09h14
  3. commit régulier avec un delete en masse
    Par kalyparker dans le forum Oracle
    Réponses: 18
    Dernier message: 16/01/2007, 11h17
  4. Delete de masse
    Par boutss dans le forum Oracle
    Réponses: 23
    Dernier message: 10/10/2006, 19h28
  5. Réponses: 4
    Dernier message: 09/12/2005, 17h40

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