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 :

Defragmentation tablespace ou table sur 9i apres purge


Sujet :

Administration Oracle

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 153
    Points : 34
    Points
    34
    Par défaut Defragmentation tablespace ou table sur 9i apres purge
    Bonjour a Tous

    sur ORACLE 9i (9.2.0.5)
    j' ai supprimé 80 millions de lignes dans un table, l’espace libre dans le tablespace n’a pas augmenté.quelle est la raison exacte

    j'aimerai recupérer l espace dans le tbs concerné

    je voudrais savoir si un simple import export du schema concerne peut résoudre le problème

    - si oui avec quel sont les options de cette export import

    - coleasce est bien a applique seulement sur le dictionary managed tablespaces ?

    merci de confirmer que le meilleur solution pour retrouver de l'espace dans le tablesapce concerné est bien un export import
    faut il exporter les index et les grants dans le fichier para

    1 Export
    2 Drop
    3 Import
    4 recompile objets invalid (le cas échéant)

    la technique move tbs sur lui même ne fonctionne pas erreur temp 01652
    alors que g deja 7 fichier temps de 2 go
    je precise que la base est assez atypique en open vms


    Merci a tous

  2. #2
    Membre habitué Avatar de Laurent_du_78
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2007
    Messages : 138
    Points : 188
    Points
    188
    Par défaut
    Bonjour,
    le tablespace est découpé en segment (ou extent). Une table prend autant d'extent que nécessaire au fur et à mesure qu'elle grossit.
    Une purge ne libère pas les extents.
    Pour réorganiser ta table, il faut la déplacer dans le même tablespace.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE xxx MOVE TABLESPACE xxxx;
    Ne pas oublier de reconstruire les index après.

  3. #3
    Membre éprouvé 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
    Points : 945
    Points
    945
    Par défaut
    Il est également possible de compacter les blocs à l'aide de la commande shrink space :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    alter table ma_table enable row movement;
    alter table ma_table shrink space cascade;
    Cela va compacter les blocs de la table et de ses index.

  4. #4
    Membre averti Avatar de voran
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 242
    Points : 346
    Points
    346
    Par défaut
    Citation Envoyé par 13thFloor Voir le message
    Il est également possible de compacter les blocs à l'aide de la commande shrink space :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    alter table ma_table enable row movement;
    alter table ma_table shrink space cascade;
    Cela va compacter les blocs de la table et de ses index.
    Hélas, cela n'existait pas en 9i

  5. #5
    Membre averti Avatar de voran
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 242
    Points : 346
    Points
    346
    Par défaut
    Citation Envoyé par Laurent_du_78 Voir le message
    Une table prend autant d'extent que nécessaire au fur et à mesure qu'elle grossit.
    Une purge ne libère pas les extents.
    ce seuil qui ne bouge plus (sauf après un truncate, un shrink (version supérieur à la 9i) ou bien sûr un drop table) s'apelle le high watermark.

    Citation Envoyé par Laurent_du_78 Voir le message
    Pour réorganiser ta table, il faut la déplacer dans le même tablespace.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE xxx MOVE TABLESPACE xxxx;
    Ne pas oublier de reconstruire les index après.
    Pour une table de 50Go comme la tienne, cela semble en effet la meilleure solution.
    Si cette table est partionnée, tu peux même le réaliser partition par partition.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 153
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par voran Voir le message
    ce seuil qui ne bouge plus (sauf après un truncate, un shrink (version supérieur à la 9i) ou bien sûr un drop table) s'apelle le high watermark.


    Pour une table de 50Go comme la tienne, cela semble en effet la meilleure solution.
    Si cette table est partionnée, tu peux même le réaliser partition par partition.
    je suis sur oracle 9 i sur open vms
    je voudrais de-fragmenter le tbs entier
    il est composé de 18 dbf de 2 go
    beaucoup de dbf ont des fragmentations d index de 100


    voila le script de base


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    CREATE TABLESPACE STOCKS DATAFILE 
      'ALPH:[ORACLE9I.ORADATA.INFO]STOCKS_1.DBF' SIZE 2000M AUTOEXTEND OFF,
      'ALPH...:[ORACLE9I.ORADATA.INFO]ST..._2.DBF' SIZE 2000M AUTOEXTEND OFF,
      'ALPH...:[ORACLE9I.ORADATA.INFO]ST..._3.DBF' SIZE 2000M AUTOEXTEND OFF,
      'ALPH...:[ORACLE9I.ORADATA.INFO]ST..._4.DBF' SIZE 2000M AUTOEXTEND OFF,
      'ALPH..:[ORACLE9I.ORADATA.INFO]ST..._5.DBF' SIZE 2000M AUTOEXTEND OFF,
      'ALPHA8:[ORACLE9I.ORADATA.INFO]ST..._6.DBF' SIZE 2000M AUTOEXTEND OFF,
      'ALPHA8:[ORACLE9I.ORADATA.INFO]ST..._7.DBF' SIZE 2000M AUTOEXTEND OFF,
      'ALPHA8:[ORACLE9I.ORADATA.INFO]ST..._8.DBF' SIZE 2000M AUTOEXTEND OFF,
      'ALPHA8:[ORACLE9I.ORADATA.INFO]ST..._9.DBF' SIZE 2000M AUTOEXTEND OFF,
      'ALPHA8:[ORACLE9I.ORADATA.INFO]ST..._10.DBF' SIZE 2000M AUTOEXTEND OFF,
      'ALPH...:[ORACLE9I.ORADATA.INFO]ST..._11.DBF' SIZE 2000M AUTOEXTEND OFF,
      'ALPH...:[ORACLE9I.ORADATA.INFO]ST..._12.DBF' SIZE 2000M AUTOEXTEND OFF,
      'ALPH...:[ORACLE9I.ORADATA.INFO]ST..._13.DBF' SIZE 1986M AUTOEXTEND OFF,
      'ALPH...:[ORACLE9I.ORADATA.INFO]ST..._14.DBF' SIZE 1858M AUTOEXTEND OFF,
      'ALPH...:[ORACLE9I.ORADATA.INFO]ST..._15.DBF' SIZE 2048M AUTOEXTEND OFF,
      'ALPH...:[ORACLE9I.ORADATA.INFO]ST..._16.DBF' SIZE 2000M AUTOEXTEND OFF,
      'ALPH...:[ORACLE9I.ORADATA.INFO]ST..._17.DBF' SIZE 2000M AUTOEXTEND OFF,
      'ALPH...:[ORACLE9I.ORADATA.INFO]ST..._18.DBF' SIZE 2048M AUTOEXTEND OFF
    LOGGING
    ONLINE
    PERMANENT
    EXTENT MANAGEMENT LOCAL AUTOALLOCATE
    BLOCKSIZE 8K
    SEGMENT SPACE MANAGEMENT AUTO;

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 153
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par 13thFloor Voir le message
    Il est également possible de compacter les blocs à l'aide de la commande shrink space :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    alter table ma_table enable row movement;
    alter table ma_table shrink space cascade;
    Cela va compacter les blocs de la table et de ses index.
    cela marche sur un 9i
    c'est quoi la manip equivalente

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 153
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Laurent_du_78 Voir le message
    Bonjour,
    le tablespace est découpé en segment (ou extent). Une table prend autant d'extent que nécessaire au fur et à mesure qu'elle grossit.
    Une purge ne libère pas les extents.
    Pour réorganiser ta table, il faut la déplacer dans le même tablespace.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE xxx MOVE TABLESPACE xxxx;
    Ne pas oublier de reconstruire les index après.
    oui mais si je veux agir sur tout le tbs

    comment voit cela deja en segment il me semble
    oui me cela me fait peter le temp 01652
    ou il y a deja 8 dbf de 2 go je dois en mettre 16 pour que cela passe
    faire un rebuild ensuite
    mais cela sera plus efficace de faire par tablespace
    j ai que 60 GO de libre sur l os

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 153
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par voran Voir le message
    ce seuil qui ne bouge plus (sauf après un truncate, un shrink (version supérieur à la 9i) ou bien sûr un drop table) s'appelle le high watermark.


    Pour une table de 50Go comme la tienne, cela semble en effet la meilleure solution.
    Si cette table est partionnée, tu peux même le réaliser partition par partition.
    elle est pas partitionnée
    il faut que j' agisse au niveau du tbs entier
    le temporaire pete avec cette manip
    avec un export
    puis recreation des tbs
    reimport et rebuild

Discussions similaires

  1. [WD17] vider ma table d'affichage sur periode apres avoir changer de date
    Par didier.dev dans le forum WinDev
    Réponses: 1
    Dernier message: 21/03/2015, 17h10
  2. Réponses: 2
    Dernier message: 09/08/2010, 19h30
  3. Réponses: 1
    Dernier message: 29/04/2009, 03h41
  4. Deplacement de tables sur un autre tablespace ?
    Par D_light dans le forum Administration
    Réponses: 2
    Dernier message: 23/05/2007, 11h55
  5. recherche enr dans table sur clé primaire
    Par access001 dans le forum Requêtes
    Réponses: 10
    Dernier message: 10/10/2003, 11h45

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