Taille tables
Aller à la navigation
Aller à la recherche
Comment connaitre la taille d'une table oracle
Lorsque la taille d'une base de donnée (un schéma dans une base pour être précis) commence à devenir trop grande, il faut savoir quelle table occupe la place.
La requête :
select segment_name, sum(bytes)/1024/1024 table_size from user_extents group by segment_name order by table_size desc
Donne la liste ordonnée des "segments" les plus consommateurs. Ces segments peuvent être :
- des tables
- des indexs
- des SYS_LOB**$$ segment stockant les champs LOB de certaines tables.
A qui appartient un Index?
Un des segments gros consommateurs de place est un index? On connait sa table associée par le requête :
select * from user_indexes where index_name='INDEX NAME'
A quelle table et quelle colonne un segment SYS_LOB est il associé?
Le nom du segment gros consommateur est du style SYS_LOBxxxx$$? Il s'agit d'un segment stockant les données LOB d'une table. Mais quelle table et quelle colonne dans cette table?
SELECT table_name "Table" , column_name "Column" , segment_name "Segment" , index_name "Index" FROM user_lobs where segment_name='SYS_LOBxxxxxx$$'
On est ensuite libre de faire un peu de ménage.