Bonjour,

J'aimerais savoir s'il existe un moyen (une requête SQL) de lister le nom des tables avec des indexes d'une taille donnée?

Je débute avec Oracle et après quelques recherche j'ai fais la requête suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
select user_indexes.table_name
from user_indexes, user_segments, user_extents
where user_indexes.tablespace_name = user_segments.tablespace_name
     and user_segments.segment_name = user_extents.segment_name
     and user.extents.bytes>65000
group by user_indexes.table_name;
Mais le résultat de cette requête n'est pas celui au quel je m'attendais. Il m'affiche toutes les tables. Je pense que c'est parce que une table elle, peut, posséder plusieurs extents et vu que les extents ils ont une taille fixe (environ 65000 octets) alloué par défaut ma requête compare un seul extents à la foi est c'est pour ça qu'elle m'affiche toutes les tables.
Si mon raisonnement est juste je dois récupérer la somme des extents de chaque table et vérifier si elle est inférieure à la taille donnée.
Je n'ai aucune idée de comment résoudre ce problème et c'est pour ça que je m'adresse à vous en espérant m'apporter de l'aide.

Merci et à bientôt.