Bonjour,
Je suis en Oracle 9i.
J'ai une table partitioné. Voila ses caracteristiques:
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)
(num_rows * avg_row_len) /1024/1024 = 96585 Mo
Or la raquette
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 qui sont quelques part dans la fragmentation de la table.
Je fait
pour la défragmenter et je recalcule les stats de la table.
Normalement je m''attend a trouver le resultat de la requette
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.
Partager