Я столкнулся с проблемой, когда индексы всей моей таблицы стали непригодными для использования, я хочу устранить причину этого. В настоящее время я перестроил все индексы, но не знаю основной причины этого. Как узнать, какие изменения были внесены в таблицу и каким пользователем БД?
Как отладить, какой пользователь БД внес изменения в таблицу, из-за чего индексы таблицы стали непригодными для использования в Oracle?
comment
Возможно, вам захочется узнать значение слова отладка, если вы планируете его использовать. Это не значит то, что вы думаете.
- person mathguy   schedule 17.02.2021
comment
stackoverflow.com /вопросы/56647258/
- person Dmitry Demin   schedule 17.02.2021
Ответы (1)
Посмотрите, как индексы становятся непригодными для использования - обычная вставка этого не сделает. Произошло одно из следующего, более чем вероятное:
- Произошла загрузка по прямому пути, что привело к дублированию данных для уникального индекса.
- Физическое расположение данных таблицы изменилось во время операции, такой как реорганизация таблицы.
- кто-то вручную изменил индексы.
Глянь сюда:
- https://docs.oracle.com/database/121/SUTIL/GUID-C44AADF7-777D-4847-A5ED-75E36B40D0EB.htm#SUTIL1305
- https://asktom.oracle.com/pls/apex/f?p=100:11:0::::p11_question_id:1859798300346695894
- https://www.databasejournal.com/features/oracle/article.php/3735286/Oracle-Unusable-Indexes.htm
Отслеживание того, кто или что вызвало это, будет зависеть от того, какой уровень аудита включен в вашей базе данных. Если вы не проводили аудит как минимум операций DDL, вы никогда не сможете сказать наверняка.
person
pmdba
schedule
17.02.2021