Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Nachdem die Partition gelöscht wurde, wurde der Index unbrauchbar, was soll ich tun,

  • ANALYZE TABLE baut den Index nicht neu auf, richtig?

    Ich weiß es nicht, aber heutzutage sollte man DBMS_STATS.GATHER_TABLE_STATS verwenden statt ANALYZE TABLE

  • Direktes Laden bedeutet, dass Daten nicht zeilenweise, sondern als Masse eingefügt werden, siehe Laden direkter Pfad

  • Wenn Ihr Index UNUSABLE wird dann muss es ein globaler Index sein.

  • Verwenden Sie die UPDATE GLOBAL INDEXES Klausel, d.h. alter table target_table drop partition target_eldest_partition UPDATE GLOBAL INDEXES; oder erstellen Sie lokale Indizes.

  • Hängt davon ab, welche Spalten Sie indiziert haben. Anstelle der gesamten Tabelle können Sie auch DBMS_STATS.GATHER_INDEX_STATS ausführen . Mit DBMS_STATS.GATHER_TABLE_STATS Sie können auch nur einzelne Partitionen und sogar einzelne Spalten angeben.

Übrigens, bei vielen Fragen sollte meine Antwort eigentlich lauten:"Haben Sie die Oracle-Dokumentation konsultiert"? oder "kennst du google"? Gemäß Ihren Screenshots verwenden Sie das Schema SYS und Tablespace SYSAUX für Ihre Benutzerobjekte. Das solltest du nicht tun. Erstellen Sie Ihren eigenen Benutzer und erstellen Sie ein beliebiges Objekt in diesem Schema.

Im Allgemeinen gibt es drei Arten von partitionierten Indizes:

  1. GLOBAL INDEX:Sie haben einen großen Index, der sich über die gesamte Tabelle erstreckt. Dies ist beispielsweise für UNIQUE INDEXES obligatorisch, wenn die indizierten Spalten nicht Teil des Partitionsschlüssels sind. Tatsächlich ist ein solcher Index nicht partitioniert. (wie in ALL_INDEXES gezeigt )
  2. LOKALER INDEX:Dieser Index ist genauso partitioniert wie die zugrunde liegende Tabelle. Jede Tabellenpartition hat eine entsprechende Indexpartition.
  3. PARTITIONIERTER INDEX:Dieser Index ist partitioniert, aber anders als die zugrunde liegende Tabelle. Ich denke, es ist sogar möglich, einen partitionierten Index für eine nicht partitionierte Tabelle zu erstellen. Partitionierte Indizes sind nur auf sehr spezielle Anwendungsfälle beschränkt. Eigentlich kann ich mir nicht vorstellen, wo ein solcher Index Sinn machen würde.