Bonjour,
connaissez vous une commande sql (à taper sous sqlplus) qui donnerait la taille de chaque index de la base ?
Merci d'avance.
Version imprimable
Bonjour,
connaissez vous une commande sql (à taper sous sqlplus) qui donnerait la taille de chaque index de la base ?
Merci d'avance.
La notion d'index n'existe pas en SQL.
Il n'y a donc aucune commande possible.
Certains éditeurs de SGBDR proposent des techniques spécifiques.
par exemple pour MS SQL Server, une requête du genre :
mais cette mesure est approximative. Pour une mesure exacte (pas souvent nécessaire) il faut faire préalablement un UPDATEUSAGE.Code:
1
2 SELECT name, dpages * 8 AS KO FROM dbo.sysindexes
A +
Merci pour la réponse,
j'ai essayé la commande :
select name, dpages * 8 AS KO from dba_indexes;
mais j'obtiens une erreur qui est celle-ci :
ERROR at line 1:
ORA-00904: "DPAGES": invalid identifier
Merci de votre aide.
Ce qui signifie que le champ dpages n'existe pas chez Oracle, comme il est possible de s'en apercevoir en faisant un :Citation:
Envoyé par leroysomer
Code:SELECT * FROM DBA_INDEXES
Merci de votre aide, mais je viens de trouver la solution afin de connaitre la taille de chaque index.
Voici la commande sql :
A+Code:
1
2
3
4 select segment_name, sum(bytes)/1024 from dba_segments where tablespace_name='INDX' group by segment_name;
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 set lines 300 set pages 1000 column owner FORMAT A10 COLUMN TABLE FORMAT A30 COLUMN Taille FORMAT A15 COLUMN TABLESPACE FORMAT A10 SELECT owner, SUM(BYTES) /(1024*1024) || 'Mo' "Taille" FROM dba_segments WHERE segment_type in ('LOBINDEX','INDEX PARTITION','INDEX SUBPARTITION','INDEX') and owner=LE_SCHEMA GROUP BY owner ;
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 set lines 300 set pages 1000 column owner FORMAT A10 COLUMN TABLE FORMAT A30 COLUMN Taille FORMAT A15 COLUMN TABLESPACE FORMAT A10 SELECT owner, segment_name "INDEX", SUM(BYTES) /1024 || 'Ko' "Taille", blocks "Blocs", tablespace_name "TABLESPACE" FROM dba_segments WHERE segment_type in ('LOBINDEX','INDEX PARTITION','INDEX SUBPARTITION','INDEX') and owner='LE_SCHEMA' GROUP BY owner,segment_name, tablespace_name, blocks ORDER BY owner ;
La taille de tous les objets de plus de 1 Go, pour un schéma donné :
Code:
1
2
3
4
5 select segment_name OBjets, segment_type types, BYTES/1024/1024/1024 Go FROM dba_segments WHERE owner='mon_Schema' and bytes/1024/1024/1024>1 order by BYTES desc ;