|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre éclairé
![]() Inscription : septembre 2003 Messages : 432 ![]() |
Bonjour, je recherche de meilleur moyen de définir au mieux la Taille d'une Table et d'un Index.
Afin de connaître la place que je vais récupérer si je supprime des objets. J'ai donc regardé les différents posts sur le sujet et j'ai utilisé les tables all_tables et dba_semgents. Cependant je ne trouve pas les même données, cela va du simple au double est ce normal ? Code :
|
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Ess-ce que tous les blocs sont utilisés dans la table ? DBA_TABLES.BLOCKS retourne le nombre de blocs utilisés dans la table alors que DBA_SEGMENT.BYTES retourne la taille du segment que les blocs soient utilisés ou non.
Voir aussi l'utilisation de DBMS_SPACE pour avoir plus d'information sur l'état des blocs: http://www.developpez.net/forums/sho...ght=DBMS_SPACE |
|
|
00
|
|
|
#3 |
|
Membre éclairé
![]() Inscription : septembre 2003 Messages : 432 ![]() |
J'en déduis donc que dans all_tables.blocks, c'est le fameux HWM donc nombre de blocks maximum utilisé un jour.
- all_tables.blocks * db_block_size = Taille totale utilisée / réservée par une table. - dba_segments.bytes = Taille utilisée par la table ?? même pas non ? Est ce bien cela ? |
|
|
00
|
|
|
#4 | |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Oui, je crois que c'est ça(d'après: http://download-uk.oracle.com/docs/c...mops.htm#44852):
Citation:
|
|
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() Inscription : septembre 2003 Messages : 432 ![]() |
D'accord merci, donc pour avoir la taille que l'on va récupérer après un drop / truncate d'une table, il faut utiliser le all_tables.blocks.
Car le HWM, informe sur le point le plus haut utilisé et comme oracle ne libère pas les espaces, nous avons donc le nb d'espace réservé qui sera libéré lors du drop de la table. Merci |
|
|
00
|
|
|
#6 | |
|
Membre éclairé
![]() Inscription : avril 2006 Messages : 465 ![]() |
Citation:
Quant à ALL_TABLES.BLOCK la HWM c'est la taille maximun utilisés dans cette espace aloué. Dans ton cas cela n'a pas d'importance puisque. De mon coté je me pose une question du meme genre. Qu'elle est la taille que je peux gagner si je REBUILD une table qui a eu beaucoup de DELETE. Et qui donc a beaucoup grossi gros HWM et gros DBA_SEGMENTS.BYTES mais qui maintenant est creuse. J'essaye d'évaluer ca avec ALL_TABLES.NUM_ROWS * ALL_TABLES.AVG_ROW_LEN mais ca na pas l'air fiable. J'ai parfois des taux d'occupation de ma table supérieur à 100 % |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com