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 :

move et extent


Sujet :

Administration Oracle

  1. #1
    Membre régulier Avatar de Vince7-7
    Homme Profil pro
    Fondateur et dirigeant de la société Oramatica. http://www.oramatica.com
    Inscrit en
    Janvier 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Fondateur et dirigeant de la société Oramatica. http://www.oramatica.com

    Informations forums :
    Inscription : Janvier 2007
    Messages : 125
    Points : 85
    Points
    85
    Par défaut move et extent
    Bonjour.
    Je viens vers vous pour essayer de comprendre de quoi il retourne.
    Dans ma base, j'ai une table ne contenant que 5 lignes mais avec 2 extents. J'ai donc essayer de la changer de tablespace pour n'en garder qu'un seul comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Alter table <ma table> move tablespace<tbs cible>
    .
    Je reconstruis les index et re-passe les stats.
    Je regarde le nombre d'extent, il est toujours à 2 . J'ai contourné le problème en passant par un shrink space cascade mais j'aimerai comprendre pourquoi il me conserve plusieurs extents.
    Voici les clauses de stockage:
    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
    PCTUSED    0
    PCTFREE    10
    INITRANS   1
    MAXTRANS   255
    STORAGE    (
                INITIAL          80K
                NEXT             1M
                MINEXTENTS       1
                MAXEXTENTS       UNLIMITED
                PCTINCREASE      0
                BUFFER_POOL      DEFAULT
               )
    NOLOGGING 
    NOCOMPRESS 
    NOCACHE
    NOPARALLEL
    MONITORING
    Merci à la personne qui saura éclairer ma lanterne.
    Fondateur et dirigeant de la société Oramatica. Spécialiste du traitement de vos données.
    http://www.oramatica.com

  2. #2
    Membre confirmé
    Homme Profil pro
    xxxxxxxxx
    Inscrit en
    Avril 2015
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : xxxxxxxxx

    Informations forums :
    Inscription : Avril 2015
    Messages : 394
    Points : 552
    Points
    552
    Par défaut move et extent
    Est-ce que tu peux vérifier le type, et les caracteristiques du tablespace
    dans lequel est stockée la table, voici les requêtes que tu dois éxécuter sous sqlplus ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select extent_management, allocation_type,
         segment_space_management from dba_tablespaces 
    where tablespace_name='nom_du_tablespace_majuscule' ;
    essaye de créer un nouveau tablespace avec un mode différent
    - même mode de gestion des extents
    - allocation des extents en mode uniforme avec une taille par défaut 1Mo

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    create tablespace  xxxx  
    datafile 'c:\..\xxx01.dbf' size  xxx Mo 
    extent management local uniform size xx M ;  -- ( définir la taille d'un extent )
    Et pour finirt, tu déplace la table vers ce nouveau tablespace (même commande que tu as
    éxécuté ) ;

    ce lient éxplique les différents mode de gestion des extents des tablespaces :
    http://oracle.developpez.com/guide/a...e/tablespaces/

  3. #3
    Membre régulier Avatar de Vince7-7
    Homme Profil pro
    Fondateur et dirigeant de la société Oramatica. http://www.oramatica.com
    Inscrit en
    Janvier 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Fondateur et dirigeant de la société Oramatica. http://www.oramatica.com

    Informations forums :
    Inscription : Janvier 2007
    Messages : 125
    Points : 85
    Points
    85
    Par défaut
    Bonjour.
    Tout d'abord merci de cette réponse.
    Les tablespaces sont déjà en extent_management=Local et segment_space_management=AUTO.
    D'autre part, si le problème se situait à ce niveau, le fait de faire un shrink ne le solutionnerai pas non? Je me trompe?
    Je vais essayer tout de même.
    Fondateur et dirigeant de la société Oramatica. Spécialiste du traitement de vos données.
    http://www.oramatica.com

  4. #4
    Membre confirmé
    Homme Profil pro
    xxxxxxxxx
    Inscrit en
    Avril 2015
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : xxxxxxxxx

    Informations forums :
    Inscription : Avril 2015
    Messages : 394
    Points : 552
    Points
    552
    Par défaut move et extent
    Il existe une procédure dbms_space.space_usage(xxx), qui te permet
    de connaitre le taux de remplissage des data blocks des segments de tables .
    en exécutant ce programme tu sauras s'il est nécessaire de faire un compactage
    des blocs, avec le shrink space ?

    voici le script éxécuté avec deux arguments &1 et &2 :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    set serveroutput on
    set verify off
    declare 
      v_full_bloc number;
      v_full_b number;
      v_fs1_bloc number;
      v_fs2_bloc number;
      v_fs3_bloc number;
      v_fs4_bloc number ;
      v_fs1_b number;
      v_fs2_b number;
      v_fs3_b number;
      v_fs4_b number ;
      v_non_formate_bloc number;
      v_non_formate_b  number;
      procedure p(text varchar2)
      is begin dbms_output.put_line(text); end;
    begin
      dbms_space.space_usage
        ( segment_owner=>upper('&1'), 
          segment_name=>upper('&2'),
          segment_type=>'TABLE',
          full_blocks=>v_full_bloc,
          full_bytes=>v_full_b,
          fs1_blocks=>v_fs1_bloc,
          fs2_blocks=>v_fs2_bloc,
          fs3_blocks=>v_fs3_bloc,
          fs4_blocks=>v_fs4_bloc,
          fs1_bytes=>v_fs1_b,
          fs2_bytes=>v_fs2_b,
          fs3_bytes=> v_fs3_b,
          fs4_bytes=>v_fs4_b,
          unformatted_blocks=>v_non_formate_bloc,
          unformatted_bytes=>v_non_formate_b);
       p('Espace utilisés dans les bloc du segment ..');
       p('.Pleins = '||v_full_bloc);
       p('. 0 à 25% esp libre = '||v_fs1_bloc);
       p('. 25 à 50% esp libre = '||v_fs2_bloc);
       p('. 50 à 75% esp libre = '||v_fs3_bloc);
       p('. 75 à 100% esp libre = '||v_fs4_bloc);
       p('. Non formaté, c''est quoi ????? = '||v_non_formate_bloc);
    end;
    /
     
    set verify on
    Attention cette procédure est destinée aux segments stockés dans ce type de tablespace uniquement !
    bonne chance .

  5. #5
    Membre régulier Avatar de Vince7-7
    Homme Profil pro
    Fondateur et dirigeant de la société Oramatica. http://www.oramatica.com
    Inscrit en
    Janvier 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Fondateur et dirigeant de la société Oramatica. http://www.oramatica.com

    Informations forums :
    Inscription : Janvier 2007
    Messages : 125
    Points : 85
    Points
    85
    Par défaut
    Merci à toi.
    Je connaissais cette procédure que j'utilise déjà.
    Je voulais juste comprendre pourquoi en déplaçant une table cela ne supprime pas les extents en trop. Il s'agissait plus de curiosité que d'un vrai problème que j'ai pu contourner.
    Je te remercie tout de même d'avoir essayé de m'éclairer.
    Fondateur et dirigeant de la société Oramatica. Spécialiste du traitement de vos données.
    http://www.oramatica.com

Discussions similaires

  1. plus d'extent aprés alter table move
    Par debdba dans le forum Oracle
    Réponses: 4
    Dernier message: 15/02/2007, 19h49
  2. Question techniques sur les extents
    Par lecharcutierdelinux dans le forum Oracle
    Réponses: 16
    Dernier message: 24/08/2006, 09h01
  3. Information : MAX EXTENTS
    Par MIKKA dans le forum Administration
    Réponses: 16
    Dernier message: 23/09/2004, 16h12
  4. Segments et extents
    Par blids dans le forum Administration
    Réponses: 11
    Dernier message: 28/04/2004, 13h47
  5. unable to create INITIAL extent for segment in tablespace
    Par Ludolitaliano dans le forum Administration
    Réponses: 4
    Dernier message: 11/09/2003, 16h43

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