Bonjour,
Existe-il un moyen d'estimer la taille (octet) d'un export via une requête SQL ?
Merci d'avance,
Bonjour,
Existe-il un moyen d'estimer la taille (octet) d'un export via une requête SQL ?
Merci d'avance,
la clause where dépend de ce qui est exporté. Pour l'export complet d'un utilisateur ce sera un filtre sur OWNER
Code : Sélectionner tout - Visualiser dans une fenêtre à part select sum(bytes) from dba_segments where...![]()
Un export full de ma base fait 662 Mo et le resultat de ma requête fait :
J'ai fait une connerie ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 select sum(bytes)/1024/1000 from dba_segments; SUM(BYTES)/1024/1000 -------------------- 2390,256![]()
non, l'export "défragmente" les objets donc des extents libres sont pas exportés ce qui permet de réduire la taille du fichier![]()
Il y a une solution alors pour avoir une estimation de l'export full ?
moi je pondère par un ratio que j'ai établi grâce à d'autres exports...
juste un détail en passant...
tu divise la somme de tes bytes par 1024 (un kb = 1024 bytes) puis tu divise par 1000 et pas par 1024... pourquoi ?
un Mb = 1024 kb et pas 1000 kb...
Peux-tu nous donner ton ratio ?
Oups ! Tu as raison pour les 1024 !
Le ratio dépend de chaque base !! De son contenu, de la façon dont elle est remplie, du type des colonnes des tables, etc.
Dans ton cas le ratio sera 662/2390. Si tu le multiplie par le résultat d'une requête future tu devrais pouvoir extrapoler la taille de ton export.
C'est du bricolage évidemment ...
si tu as accès à Metalink, va voir la note no 303709.1
c'est plein de choses utiles pour calculer les espaces libres et / ou utilisés...
je ne suis pas d'accord sur votre requête.
Dans les segments, il y a les indexes qui ne prennent pas de place dans l'export.
Peux être que cette requête serq plus proche de la réalitée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select sum(bytes)/1024/1000 from dba_segments t where t.segment_type <> 'INDEX';
Partager