User_segments未显示数据库中的所有索引

时间:2019-01-30 06:22:04

标签: oracle indexing

我有一个数据库,其中有100多个DB表,并为其中的30个表创建了索引。这在表“ user_indexes”或“ dba_ind_columns”中正确显示,但是当我检查“ user_segments”表时,我仅看到5个索引。请让我知道其原因以及解决方法。

这显示了我在数据库中的所有索引,大约。 30:

SELECT DISTINCT TABLE_NAME, INDEX_NAME 
FROM DBA_IND_COLUMNS;

这也显示了数据库中的所有索引:

SELECT DISTINCT INDEX_NAME 
FROM USER_INDEXES;

这仅显示数据库中的5个索引

SELECT SEGMENT_NAME 
FROM USER_SEGMENTS 
WHERE SEGMENT_TYPE = 'INDEX';

1 个答案:

答案 0 :(得分:0)

使用DBA_SEGMENTS而不是USER_SEGMENTS不仅可以查看当前架构中的细分,还可以查看所有数据库中的细分,并将PARTITIONSSUBPARTITIONS的视图包括到列表中为:

SELECT OWNER, SEGMENT_NAME 
  FROM DBA_SEGMENTS 
 WHERE SEGMENT_TYPE = 'INDEX'
 ORDER BY OWNER, SEGMENT_NAME;

SELECT INDEX_OWNER, INDEX_NAME
  FROM DBA_IND_PARTITIONS 
 GROUP BY INDEX_OWNER, INDEX_NAME 
 ORDER BY INDEX_OWNER, INDEX_NAME; 

SELECT INDEX_OWNER, INDEX_NAME
  FROM DBA_IND_SUBPARTITIONS 
 GROUP BY INDEX_OWNER, INDEX_NAME 
 ORDER BY INDEX_OWNER, INDEX_NAME;