11
votes

Récupérer l'espace après une grande suppression d'Oracle

Dans mon application, nous sommes téléchargés d'énormes données.Si toutes les données téléchargées à tort, nous pouvons supprimer les données.so, quelles que soient les données supprimées de cet espace lors de la récupération des données? Espace après une grande suppression à Oracle? .Comment récupérer l'espace?


4 Réponses :


0
votes

Il n'y a aucun moyen de récupérer l'espace après la suppression. Mais si après la suppression de la taille des données restantes est relativement faible, créez une nouvelle table avec les données, déposez l'ancienne table et renommez la nouvelle table à l'ancien nom


0 commentaires

17
votes

dans Oracle, la suppression de données ne récupère pas automatiquement l'espace disque. La base de données conservera son stockage jusqu'à ce que vous fassiez quelque chose administratif à l'espace de table. L'attente de ce comportement est que si vous aviez besoin du stockage à la fois, vous en aurez probablement besoin et il serait donc plus efficace de conserver simplement l'allocation.

En ce qui concerne l'impact de la performance, moins de données à traiter feront généralement des questions plus rapidement. :)

Pour récupérer l'espace, vous avez quelques choix. Cet article de Oracle-Base a un regard assez complet sur cette situation.

En outre, pourquoi inséreriez-vous des données, puis déterminez-la est "mauvaise" pour la supprimer ensuite? Ne feriez-vous pas mieux d'éviter de mettre les données à partir du début?


4 commentaires

C'est un problème majeur dans notre environnement de développement qui nous oblige à créer une nouvelle base de données tous les 6-8 mois et déposez l'ancien. Nous ajoutons n'importe où des 10-15 nouveaux utilisateurs par nuit pour des raisons de test / développement et abandonnons les anciennes après une semaine. Le problème de la récupération de l'espace de table est que, si un élément de données réside dans l'espace de table vers la fin du fichier - vous ne pouvez récupérer aucun de l'espace libre au milieu. C'est assez gênant en fait.


Si vous tombez en permanence / crée des utilisateurs et que vous avez beaucoup de modèles d'usage étranges, pourquoi ne pas donner à chaque utilisateur leur propre espace de table?


C'est une option - et après avoir examiné cette dernière construction, j'ai donné aux utilisateurs "auto" leur propre espace de table - afin que je puisse les supprimer et laisser tomber l'espace de table et ne pas avoir à abandonner la DB. Je ne suis pas sûr de vouloir faire l'espace de table par utilisateur - mais c'est d'accord c'est une option viable. Merci pour l'entrée ..... !!!


Voir aussi Stackoverflow.com/Questtions/15563408/ ...



3
votes

Vous devez rechercher le Marque d'eau élevée (HWM) .

Fondamentalement, il s'agit du nombre maximum de blocs qui ont déjà été utilisés par une table spécifique, si vous chargez un volume important de données que vous pouvez augmenter le HWM, la suppression de ces enregistrements ne réduit pas la HWM.

ICI est un excellent article sur la façon de régler la HWM et si, une fois que vous le comprenez, vous pensez que cela affecte peut-être votre L'environnement utilise ensuite les conseils inclus pour réduire votre HWM.

J'espère que cela aide ...


2 commentaires

Le lien vers Sysdba.wordpress.com n'est plus disponible.


Les deux liens ne fonctionnent plus :(



0
votes

Je sais que c'est une vieille question, mais pour les références futures:

  • Supprimer vide la table mais l'espace est déjà "verrouillé" pour les futurs remplissages
  • TRONCARE TABLE TRONCATE Faites le tour (vous devez désactiver toutes les clés étrangères faisant référence à la table afin de travailler).

0 commentaires