Bonjour,

Je suis en Oracle 9i.

J'ai une table partitioné. Voila ses caracteristiques:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
select * from dba_tab_partitions where table_name ='D_MVT_FINANCIER';
 
COMPOSITE PARTITION_NAME             SUBPARTITION_COUNT HIGH_VALUE      PCT_FREE   PCT_USED  INI_TRANS  MAX_TRANS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENT MAX_EXTENT PCT_INCREASE  FREELISTS FREELIST_GROUPS LOGGING COMPRESSION   NUM_ROWS     BLOCKS EMPTY_BLOCKS  AVG_SPACE  CHAIN_CNT AVG_ROW_LEN SAMPLE_SIZE LAST_ANALYZED BUFFER_POOL GLOBAL_STATS USER_STATS
--------- -------------------------- ------------------ ------------  ---------- ---------- ---------- ---------- -------------- ----------- ---------- ---------- ------------ ---------- --------------- ------- ----------- ---------- ---------- ------------ ---------- ---------- ----------- ----------- ------------- ----------- ------------ ----------
NO        FIN_A                                       0 'A'                   10                     1        255          81920     1048576          1 2147483645            0                            NO      DISABLED     197959206    5347268           60        149          0         189   197959206 15/07/2010 17 DEFAULT     NO           NO
NO        FIN_C                                       0 'C'                   10                     1        255          81920     1048576          1 2147483645            0                            NO      DISABLED     364933400    9061192           56        428          0         175   364933400 15/07/2010 21 DEFAULT     NO           NO
NO        FIN_OTHE                                    0 DEFAULT               10                     1        255          81920     1048576          1 2147483645            0                            NO      DISABLED             0          0          128          0          0           0             16/07/2010 04 DEFAULT     NO           NO
D'après mes calculs on a (la somme pour chaque partition)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
(num_rows * avg_row_len) /1024/1024 = 96585 Mo

Or la raquette
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
select sum(bytes)/1024/1024 from dba_segments where segment_name = 'FIN_P';
 
SUM(BYTES)/1024/1024
--------------------
              112568568
Ce qui veut dire qu'il y a a peux près
Code : Sélectionner tout - Visualiser dans une fenêtre à part
112568 - 96585 = 15983Mo
qui sont quelques part dans la fragmentation de la table.

Je fait
Code : Sélectionner tout - Visualiser dans une fenêtre à part
alter table fin_p move;
pour la défragmenter et je recalcule les stats de la table.

Normalement je m''attend a trouver le resultat de la requette
Code : Sélectionner tout - Visualiser dans une fenêtre à part
select sum(bytes)/1024/1024 from dba_segments where segment_name = 'FIN_P';
qqch qui se rapproche de 96585 Mo. Or suite au move sur elle meme la table a grossit en passant de 112568Mo a 116782 Mo.

Comment s'explique celle la ?

Merci pour vos commentaires.