В чем разница при перестроении индекса для таблицы с упорядоченным индексом и обычной таблицы? - PullRequest
5 голосов
/ 09 августа 2010

Начиная с этой статьи об индексированных таблицах ,

Обратите внимание, что перестройка вторичного индекса на организованной индексом таблице требует чтения базовой таблицы, в отличие от перестройки индекса наобычная таблица.

Почему перестроение индекса на обычной таблице не требует чтения базовой таблицы?

Ответы [ 2 ]

2 голосов
/ 09 августа 2010

Цитата от http://download.oracle.com/docs/cd/E11882_01/server.112/e10595/indexes004.htm#ADMIN11734

Когда вы перестраиваете индекс, вы используете существующий индекс в качестве источника данных.

1 голос
/ 09 августа 2010

Я полагаю, что это потому, что индекс обычно используется для перестройки самого себя, и как физические rowid-ы используются в индексе.

Индекс в обычной таблице хранит физические rowid-ы, но потому что организованная по индексу таблицаимеет плавную структуру, вторичный индекс может хранить только физическое предположение о строке.

Когда вы перестраиваете индекс на обычной таблице, ему не нужно ссылаться на исходную таблицу для физических строк, он имеетих уже в индексе.Но в таблице, организованной по индексу, пересборка должна снова просмотреть физический rowid и, следовательно, вынуждена сканировать базовую таблицу.

...