-
ANALYZE TABLE no reconstruye el índice, ¿verdad?
No sé, pero hoy en día deberías usar
DBMS_STATS.GATHER_TABLE_STATS
en lugar deANALYZE TABLE
-
La carga directa significa que los datos no se insertan fila por fila sino de forma masiva, consulte Carga de ruta directa
-
Si su índice se vuelve
UNUSABLE
entonces debe ser un índice global. -
Use el
UPDATE GLOBAL INDEXES
cláusula, es decir,alter table target_table drop partition target_eldest_partition UPDATE GLOBAL INDEXES;
o crear índices locales. -
Depende de las columnas que haya indexado. En lugar de la tabla completa, también puede ejecutar
DBMS_STATS.GATHER_INDEX_STATS
. ConDBMS_STATS.GATHER_TABLE_STATS
también puede especificar solo particiones individuales e incluso columnas individuales.
por cierto, para muchas preguntas, mi respuesta debería ser:"¿Consultó la documentación de Oracle"? o "¿Conoces Google"? De acuerdo con sus capturas de pantalla, usa el esquema SYS
y espacio de tablas SYSAUX
para sus objetos de usuario. No deberías hacer eso. Cree su propio usuario y cree cualquier objeto en este esquema.
En general, hay tres tipos de índices particionados:
- ÍNDICE GLOBAL:tiene un gran índice que abarca toda la tabla. Esto es obligatorio, por ejemplo, para ÚNICOS ÍNDICES si las columnas indexadas no forman parte de la clave de partición. En realidad, dicho índice no está particionado. (como se muestra en
ALL_INDEXES
) - ÍNDICE LOCAL:este índice se particiona de la misma manera que la tabla subyacente. Cada partición de tabla tiene una partición de índice correspondiente.
- ÍNDICE PARTICIONADO:este índice está particionado pero diferente que la tabla subyacente. Creo que incluso es posible crear un índice particionado en una tabla no particionada. Los índices particionados están limitados solo a casos de uso muy especiales. En realidad, no puedo imaginar dónde tendría sentido dicho índice.