Bonjour,

J'ai estimé la taille d'un index comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
variable used_bytes number
variable alloc_bytes number
exec dbms_space.create_index_cost('create index testCommune_idx on commune(nom_com)', :used_bytes, :alloc_bytes);
 
print :used_bytes -- affiche 472134
print :alloc_bytes -- affiche 983040
Puis, je l'ai crée :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
CREATE INDEX testCommune_idx ON commune(nom_com);
Et j'ai sélectionné sa taille réelle dans la table user_segments :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT trim(to_char(bytes, '999,999,999')) actual_bytes
FROM user_segments 
WHERE segment_name = 'TESTCOMMUNE_IDX';
-- renvoie 2,097,152
Comment on peut expliquer de telles différences ?
  • USED_BYTES : 472134
  • ALLOC_BYTES : 983040
  • ACTUAL_BYTES: 2,097,152



Merci d'avance.