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 :

Meilleur façon de vider une table


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 532
    Par défaut Meilleur façon de vider une table
    Salut,

    J'ai une table qui contient des données rangées par id d'alimentation.
    Pour l'alimentation id = a1 je peux avoir 10 000 lignes.
    Pour l'alimentation id = a2 e peux avoir 2 millions de lignes et ainsi de suite ...
    Cette table peut contenir jusqu'à n id.

    Je me pose une question,
    quelle est le meilleur moyen de purger cette table ?
    Si je fais un delete par exemple pour l'id a2, c'est inimaginable,
    car il y a 5 millions de lignes.

    Je pensai faire un create table as select , en prenant tout sauf l'id a2.
    Puis un rename table.

    Je pensai aussi à partitionner la table et faire un truncate de partition.
    Je me suis renseigner sur les partitions mais dans mon cas,
    je pense pas que ce sera impossible, dans la mesure ou je ne connais pas l'id d'alimentation.
    Aujourd'hui c 'est a1 et demain ça peut-être c42. Or pour créer une partition (range, liste) , il faut lui indiquer des valeurs (ex : < à telle date..).


    Si je souhaite faire un delete, existe-il un pourcentage à partir duquel le delete est possible ?
    Par exemple, si je souhaite purger 50% de la table alors c'est plus optimal de faire un create table as, puis un truncate et ensuite réinsérer les données dans la table. Si je purge 5% de la table alors faire un delete.


    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Il n'y a pas de pourcentage, ça dépend de beaucoup de choses. Mais le delete sera toujours très long: modifications des lignes, des index, génération de redo et d'undo...
    Pour le partitionnement c'est vrai que sans connaître la valeur ce sera difficile. Peut-être est-il possible de normaliser un id d'alimentation avec une table faisant le lien entre l'id actuel eu un numéro plus générique.
    Ou alors ajouter une partition à un partition by list avant le premier insert d'une alimentation.

    Cordialement,
    Franck.

Discussions similaires

  1. [SQL] Vider une table
    Par philippef dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 22/03/2013, 19h20
  2. Réponses: 0
    Dernier message: 12/02/2011, 23h42
  3. Vider une table MySQL suite à javascript:confirm()
    Par anutka dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 16/09/2005, 12h16
  4. comment vider une table de tous ses enregistrements ?
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 3
    Dernier message: 29/07/2005, 10h19
  5. Vider une table a une fermeture subite
    Par mimosa7 dans le forum Access
    Réponses: 6
    Dernier message: 15/06/2005, 17h13

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