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 :

Récupérer l'espace ds les tablespaces apres delete


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 34
    Par défaut Récupérer l'espace ds les tablespaces apres delete
    Bonjour,

    Je travaille avec oracle 10g sous redhat

    Apres avoir eu des problemes de place, disk full et tablespace full.
    J'ai supprimé des millions de rows ds certaines tables.
    Mais l'espace utilisé ds les tablespaces ne change pas ???
    Y a t'il une commande pour liberer cette espace afin de le reutulisé.

    J'ai decouvert ces 2 commandes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ALTER TABLESPACE name DEALLOCATE UNUSED;
    Alter table MATABLE deallocate unused keep 1400M;
    Mais etant sur un serveur de prod, j'ai peur du resultat, qlqun peut il me confirmer ou m'expliquer clairement l'une ou l'autre commande

    merci d'avance merci

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    L'espace occupé par une table dans un tablespace peut augmenter en taille mais pas baisser.
    Le seul moyen pour retailler une table dans laquelle tu as supprimé 15 millions de lignes, c'est de la déplacer avec l'option de taille.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE MATABLE MOVE TABLESPACE MONTABLESPACE STORAGE( INITIAL 50M)';
    (C'est dans le cours sur les tablespace de developpez.com)

    Ensuite pour les tablespaces, si un bloc est utilisé en fin de fichier, impossible de réduire sa taille par un RESIZE

    Dans ce cas faut déplacer les données (table, index..) stockées à la fin vers un autre tablespace et faire un resize.

  3. #3
    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
    Par défaut
    Le probléme que tu as est le suivant.

    Tu as grâce à ta commande de DELETE pu supprimer quelques millions de lignes mais la commande DELETE ne permet pas de faire baisser le HWM ( High Water Mark). C'est en faisant baisser ce HWM que tu pourras faire diminuer la taille de ton TBS.

    Ceci étant dit, il te faut faire une réorganisation pour avoir des blocs contigus et que ton TBS prenne moins de place, mais également pour des soucis de perfs car lors du parcourt d'une table, le FTS ( par exemple ) va jusqu'au HWM.

    La réorganisation se fait par un move mais pas seulement. l'export-Import est également un autre moyen . ou la recréation de la table avec un rename

  4. #4
    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
    Citation Envoyé par Jaouad
    Tu as grâce à ta commande de DELETE pu supprimer quelques millions de lignes mais la commande DELETE ne permet pas de faire baisser le HWM ( High Water Mark). C'est en faisant baisser ce HWM que tu pourras faire diminuer la taille de ton TBS.
    en effet, dans le cas de grosses suppressions, il peut être plus intéressant d'insérer dans une table temporaire, dropper la table d'origine et renommer la table temporaire

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 34
    Par défaut
    Merci pour vos réponses,

    Mais dans mon cas, ou j'ai une table de log qui se remplit à une vitesse folle, et dont je ne veux garder que le dernier mois quelle est la meilleure solution???

    Merci

  6. #6
    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
    le partitionning me parait être une bonne solution dans ce cas

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 34
    Par défaut
    Suite a la manipulation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ALTER TABLE db_log_file MOVE TABLESPACE DATA2 STORAGE( INITIAL 50M);
    Certains index sont corrompu.
    ya t'il un moyen rapide des les reparer ?

    parce que j'avoue que j'ai abuser de cette commande a travers une procedure sur aux moins 100 tables et que ca sera lourd de les recreer manuellement

    Merci

  8. #8
    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
    tu fais un REBUILD dessus

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 34
    Par défaut
    Merci pour tout, vous etes des chefs

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

Discussions similaires

  1. [11g] Gestion de l'espace dans les tablespaces (tables partitionnées)
    Par isa06 dans le forum Administration
    Réponses: 4
    Dernier message: 03/06/2013, 11h56
  2. Récupérer les données après validation
    Par nesswaw dans le forum CodeIgniter
    Réponses: 1
    Dernier message: 31/01/2009, 15h02
  3. [Wamp] Récupérer les données après mise à jour de wamp
    Par JLC83 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 18/09/2008, 10h11
  4. Espacement vertical avant et après les équations
    Par gzeus dans le forum Mathématiques - Sciences
    Réponses: 0
    Dernier message: 03/08/2007, 20h52
  5. Récupérer les données après une recherche
    Par cdumas dans le forum Access
    Réponses: 7
    Dernier message: 04/05/2006, 12h09

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