sql >> Database >  >> RDS >> Oracle

Nadat de partitie was verwijderd, werd de index onbruikbaar, wat moet ik doen,

  • ANALYSE TABLE herbouwt de index niet, toch?

    Ik weet het niet, maar tegenwoordig zou je DBMS_STATS.GATHER_TABLE_STATS moeten gebruiken in plaats van ANALYZE TABLE

  • Direct laden betekent dat gegevens niet rij voor rij worden ingevoegd, maar als bulk, zie Direct pad laden

  • Als uw index UNUSABLE wordt dan moet het een globale index zijn.

  • Gebruik de UPDATE GLOBAL INDEXES clausule, d.w.z. alter table target_table drop partition target_eldest_partition UPDATE GLOBAL INDEXES; of maak lokale indexen.

  • Afhankelijk van welke kolommen u hebt geïndexeerd. In plaats van de hele tabel kunt u ook DBMS_STATS.GATHER_INDEX_STATS uitvoeren . Met DBMS_STATS.GATHER_TABLE_STATS je kunt ook alleen enkele partities en zelfs enkele kolommen specificeren.

btw, op veel vragen zou mijn antwoord eigenlijk moeten zijn:"Heb je de Oracle-documentatie geraadpleegd"? of "Ken je google"? Volgens je screenshots gebruik je schema SYS en tabelruimte SYSAUX voor uw gebruikersobjecten. Dat moet je niet doen. Maak je eigen gebruiker aan en maak een willekeurig object in dit schema.

Over het algemeen zijn er drie soorten gepartitioneerde indexen:

  1. GLOBALE INDEX:je hebt één grote index die de hele tabel beslaat. Dit is bijvoorbeeld verplicht voor UNIQUE INDEXES als de geïndexeerde kolommen geen deel uitmaken van de partitiesleutel. Eigenlijk is zo'n index niet gepartitioneerd. (zoals getoond in ALL_INDEXES )
  2. LOKALE INDEX:Deze index is op dezelfde manier gepartitioneerd als de onderliggende tabel. Elke tabelpartitie heeft een bijbehorende indexpartitie.
  3. GEPARTITIONEERDE INDEX:deze index is gepartitioneerd maar anders dan de onderliggende tafel. Ik denk dat het zelfs mogelijk is om een ​​gepartitioneerde index te maken op een niet-gepartitioneerde tabel. Gepartitioneerde indexen zijn beperkt tot zeer speciale gebruiksgevallen. Eigenlijk kan ik me niet voorstellen waar zo'n index zinvol zou zijn.


  1. Pad-arrays met NULL tot maximale lengte voor aangepaste aggregatiefunctie

  2. Apex 5.0:een voortgangsbalk weergeven terwijl de databaseactie wordt uitgevoerd

  3. Geef de aanmaakdatum van een rij weer in mysql

  4. Basis PDO-verbinding met MySQL