-
ANALYZE TABLE no reconstruye el índice, ¿verdad?
No sé, pero hoy en día deberías usar
DBMS_STATS.GATHER_TABLE_STATSen 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
UNUSABLEentonces debe ser un índice global. -
Use el
UPDATE GLOBAL INDEXESclá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_STATStambié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.