Я всегда думал, что индексы B-дерева всегда обновляются (перебалансируются) после каждой вставки, обновления или удаления. Однако похоже, что Oracle не обновляет его после удаления (deleted leafs still remain in index tree). Как насчет вставки и обновления строк, где мы используем тип индекса B-дерева? Обновляется ли индекс во время каждой вставки/обновления?Когда и почему индексы оракула становятся недействительными?
Другой вопрос: почему и когда индексы становятся недействительными, поэтому их необходимо перестроить? Меня больше всего беспокоят индексы B-tree, но также было бы интересно узнать, когда нужно перестроить другие типы индексов.
Исключения из индекса b-дерева не приводят к объединению блоков листьев, когда они имеют достаточное свободное пространство, но когда листовой блок полностью пуст, он возвращается в список «пустой блок» для повторного использования , Кроме того, пространство, введенное путем удаления из блока индексного листа, доступно для повторного использования другими подходящими строками, поэтому оно не является мертвым пространством, пока индекс не будет перестроен. –