Пользовательские сегменты не отображают все индексы в БД - PullRequest
0 голосов
/ 30 января 2019

У меня есть БД с более чем 100 таблицами БД, и я создал индексы для примерно 30 таблиц.Это правильно показано в таблицах 'user_indexes' или 'dba_ind_columns', но я вижу только 5 индексов, когда проверяю таблицу 'user_segments'.Пожалуйста, дайте мне знать причину этого и как это исправить.

Это показывает все индексы, которые у меня есть в БД, ок.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 голосов
/ 30 января 2019

Используйте DBA_SEGMENTS вместо USER_SEGMENTS, чтобы видеть не только сегменты в вашей текущей схеме, но и через всю базу данных, и включайте представления для PARTITIONS и SUBPARTITIONS в свои списки как:

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; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...