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 :

Récupération des espaces tablespace après suppression des enregistrements.


Sujet :

Administration Oracle

  1. #1
    Membre confirmé
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2008
    Messages : 47
    Par défaut Récupération des espaces tablespace après suppression des enregistrements.
    Bonjour,

    Je suis sous Windows 2000 édition familiale et j’utilise Oracle8i Enterprise Edition Release 8.1.7.0.0.

    J'ai une table tbl_test qui est associée à un tablespace tbs_test dont la taille du fichier de données allouée à ce dernier est de 5 Mo.
    Après visualisation sur DBA STUDIO, l'espace utilisé est maintenant de 4,8 Mo.

    Je voudrai donc supprimer une partie de mes enregistrements et récupérer l'espace utilisé par ces enregistrements dans ma tablespace tbs_test.
    Comment pourrais-je procéder ?

    J’ai déjà fait un delete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Delete from tbl_test where col1 = '2008';
    Mais l'espace utilisé dans la tablespace reste inchangé.
    Est-ce que quelqu'un peut m'aider ?

    Merci.

  2. #2
    Membre éclairé Avatar de macben
    Inscrit en
    Mars 2004
    Messages
    546
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 546
    Par défaut
    Normalement cela fonctionne dès la 8i, tu bouges la table à l'intérieur même de son tablespace actuel, afin qu'il réorganise les extends.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE tbl_tst MOVE TABLESPACE tablespace_de_tbl_tst;

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2009
    Messages : 152
    Par défaut
    La commande truncate ne permet pas de le faire ??

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    461
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 461
    Par défaut
    Fanah,
    J’ai déjà fait un delete :
    Code :
    DELETE FROM tbl_test WHERE col1 = '2008';
    Mais l'espace utilisé dans la tablespace reste inchangé.
    Est-ce que quelqu'un peut m'aider ?
    Il faut déja voir combien de lignes ont été supprimées sur la totalité de ce que la table contient.
    Par ailleurs, si le lignes restantes se trouvent situées à l'extrémité des extents alloués à la table, à savoir au niveau du High Water Mark, alors vous ne pourrez pas réduire la taille de votre tablespace, sauf en suivant la syntaxe donnée par Macben.
    La commande truncate ne permet pas de le faire ??
    Breizh76,
    Fanah a indiqué qu'il voulait supprimer une partie des enregistrements et récupérer l'espace utilisé par ces enregistrements dans aa tablespace tbs_test. Le truncate effectivement repositionne le HWM à 0 mais vide la table, ce qu'il ne semble pas devoir faire.

  5. #5
    Membre confirmé
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2008
    Messages : 47
    Par défaut
    breizh76,
    Oui, truncate permet de faire ca, mais je ne veut pas supprimer la totalité du contenu de ma table.

    tibal,
    J'ai en effet, supprimé plus de 3/4 des enregistrements existant dans ma table.

    macben,
    J'ai bougé la table dans sa propre tablespace:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE tbl_tst MOVE TABLESPACE tbs_tst;
    Et sa marche maintenant, l'espace utilisé n'est plus qu'à 1,5 Mo.

    Est-ce que cela veut dire que je dois aussi rebuilder mes index.

  6. #6
    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
    Oui, rebuilde tes indexes.
    De toute façon, ça peut pas faire de mal

  7. #7
    Membre éclairé Avatar de macben
    Inscrit en
    Mars 2004
    Messages
    546
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 546
    Par défaut
    Avec les 3/4 des données supprimées, un recalcul des statistiques peut aussi être utile, surtout si cette table est très utilisée dans les select.

  8. #8
    Membre confirmé
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2008
    Messages : 47
    Par défaut
    Ok,

    Juste une dernière question concerant le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE tbl_tst MOVE TABLESPACE tbs_tst;
    Dans le cas ou j'utiliserai une table partitionné, cette syntaxe ne marcherai plus.
    Quelle solution pourrai-on utiliser pour recupérer mon espace non utilisé ?

  9. #9
    Membre émérite Avatar de 13thFloor
    Homme Profil pro
    DBA Oracle freelance
    Inscrit en
    Janvier 2005
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : DBA Oracle freelance

    Informations forums :
    Inscription : Janvier 2005
    Messages : 670
    Par défaut
    Il y a 2 moyens pour récupérer de l'espace :
    - alter table shrink compact
    - alter table deallocate unused

    Mais pas sûr que ce soit opérationnel en 8i.
    Un alter table move compactera les lignes dans les blocs, donc moins de blocs utilisés (ne pas oublier un alter index rebuild pour tous les index de la table concernée).

    Pour les partitions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter table move partition P1 tablespace new_ts;

  10. #10
    Membre confirmé
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2008
    Messages : 47
    Par défaut
    13thFloor,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter table deallocate unused
    ne marche pas sur oracle 8i.
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter table shrink compact
    non plus, je ne jamais utilisé cette dernière, pourriez vous m'éclaircir sur ce point ?

    Par contre pour le move des partions j'ai suivi votre syntaxe .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ALTER TABLE tbl_tst move partition part_p1 tablespace tbs_tst;
    ALTER TABLE tbl_tst move partition part_p2 tablespace tbs_tst;
    Suivi d'un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ALTER INDEX idx_tst REBUILD PARTITION part_p1;
    ALTER INDEX idx_tst REBUILD PARTITION part_p2;
    Et j'ai recupéré mon espace non utilisé dans mon tablespace.
    Merci.

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

Discussions similaires

  1. Enregistrement auto après suppression des macros ;)
    Par bravojr dans le forum VBA Word
    Réponses: 6
    Dernier message: 21/07/2010, 14h18
  2. problème accès en mode open après suppression des tablespaces
    Par djo_jojo dans le forum Administration
    Réponses: 1
    Dernier message: 02/04/2010, 09h19
  3. Réponses: 4
    Dernier message: 16/06/2008, 15h30
  4. Réponses: 2
    Dernier message: 01/07/2005, 10h56
  5. [Tomcat] Suppression des espaces
    Par bluefox_du_974 dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 16/12/2004, 21h54

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