sql >> Database teknologi >  >> RDS >> Oracle

Efter at have droppet partitionen, blev indekset ubrugeligt, hvad skal jeg gøre,

  • ANALYSE TABLE genopbygger ikke indekset, vel?

    Jeg ved det ikke, men i dag bør du bruge DBMS_STATS.GATHER_TABLE_STATS i stedet for ANALYZE TABLE

  • Direkte indlæsning betyder, at data ikke indsættes række for række, men som bulk, se Direkte stibelastning

  • Hvis dit indeks bliver UNUSABLE så skal det være et globalt indeks.

  • Brug UPDATE GLOBAL INDEXES klausul, dvs. alter table target_table drop partition target_eldest_partition UPDATE GLOBAL INDEXES; eller opret lokale indekser.

  • Afhænger af hvilke kolonner du har indekseret. I stedet for hele tabellen kan du også køre DBMS_STATS.GATHER_INDEX_STATS . Med DBMS_STATS.GATHER_TABLE_STATS du kan også angive kun enkelte partitioner og endda enkelte kolonner.

btw, til mange spørgsmål burde mit svar faktisk være:"Konsulterede du Oracle-dokumentationen"? eller "Kender du google"? Ifølge dine skærmbilleder bruger du skemaet SYS og tablespace SYSAUX for dine brugerobjekter. Det skal du ikke gøre. Opret din egen bruger og opret ethvert objekt i dette skema.

Generelt er der tre typer af partitionerede indekser:

  1. GLOBAL INDEKS:Du har et stort indeks, der strækker sig over hele tabellen. Dette er obligatorisk for f.eks. UNIKKE INDEKSER, hvis de indekserede kolonner ikke er en del af partitionsnøglen. Faktisk er et sådant indeks ikke opdelt. (som vist i ALL_INDEXES )
  2. LOKALT INDEKS:Dette indeks er opdelt på samme måde som den underliggende tabel. Hver tabelpartition har en tilsvarende indekspartition.
  3. OPDELT INDEKS:Dette indeks er opdelt, men forskelligt end den underliggende tabel. Jeg tror, ​​det er endda muligt at oprette et partitioneret indeks på en ikke-partitioneret tabel. Opdelte indekser er kun begrænset til meget specielle tilfælde. Jeg kan faktisk ikke forestille mig, hvor et sådant indeks ville give mening.


  1. Import af en csv til mysql via kommandolinjen

  2. udfører en .sql-fil på kommandolinjen

  3. Parsing af XML-data ved hjælp af php til at lægge i mysql-database

  4. MySQL:Ukendt kolonne i hvor klausul fejl