2010-08-09 14 views

Respuesta

2

Presupuesto de http://download.oracle.com/docs/cd/E11882_01/server.112/e10595/indexes004.htm#ADMIN11734

Cuando vuelve a generar un índice, se utiliza un índice existente como origen de datos.

+0

Pero si el índice está desactualizado, contiene información incorrecta, entonces, ¿cómo se puede usar para actualizarse sin consultar la tabla? – Moeb

+0

El índice no puede estar desactualizado per se, puede tener conjeturas incorrectas/imprecisas de ubicaciones de bloques, pero los datos reales que contiene deben ser precisos, considere la alternativa, si los índices se permitieron pero no fueron correctos, la consulta el motor nunca podría usarlos. – Andrew

1

Creo que esto es debido a que el índice se utiliza normalmente para reconstruirse a sí mismo, y cómo física de ROWID se utilizan en el índice.

Un índice en una tabla ordinaria almacena rowid's físicos, pero debido a que una tabla organizada por índice tiene una estructura fluida, un índice secundario solo puede almacenar una conjetura rowid física.

Cuando reconstruye un índice en una tabla ordinaria, no necesita hacer referencia a la tabla de origen para rowid físico, ya los tiene en el índice. Pero en una tabla organizada por índice, la reconstrucción tiene que volver a examinar el rowid físico y, por lo tanto, se ve obligado a analizar la tabla base.

+0

Pero si el índice de la tabla ordinaria está desactualizado, contiene información incorrecta, entonces, ¿cómo se puede usar para actualizarse sin consultar la tabla? – Moeb

+0

Reconstruir un índice es más sobre la reestructuración para ser más eficiente, no que los datos sean "incorrectos". En el caso de una tabla organizada por índice, hay datos incorrectos en el índice, las conjeturas rowid físicas que ciertamente se habrían desviado del objetivo después de muchas actualizaciones en la tabla. –

+1

La documentación de Oracle aquí debería decir "reconstruir un índice utilizable en una tabla organizada por el montón". Reconstruir un índice (o partición/subpartición) de un índice inutilizable requiere releer la tabla base. –

Cuestiones relacionadas