sql >> Databasteknik >  >> RDS >> Oracle

Efter att ha släppt partitionen blev indexet oanvändbart, vad ska jag göra,

  • ANALYSE TABLE bygger inte om indexet, eller hur?

    Jag vet inte men nuförtiden bör du använda DBMS_STATS.GATHER_TABLE_STATS snarare än ANALYZE TABLE

  • Direktladdning innebär att data inte infogas rad för rad utan som bulk, se Direkt sökvägsladdning

  • Om ditt index blir UNUSABLE då måste det vara ett globalt index.

  • Använd UPDATE GLOBAL INDEXES sats, dvs. alter table target_table drop partition target_eldest_partition UPDATE GLOBAL INDEXES; eller skapa lokala index.

  • Beror på vilka kolumner du har indexerat. Istället för hela tabellen kan du också köra DBMS_STATS.GATHER_INDEX_STATS . Med DBMS_STATS.GATHER_TABLE_STATS Du kan också specificera enstaka partitioner och till och med enstaka kolumner.

btw, för många frågor borde mitt svar faktiskt vara:"Konsulterade du Oracle-dokumentationen"? eller "Känner du google"? Enligt dina skärmdumpar använder du schemat SYS och tabellutrymmet SYSAUX för dina användarobjekt. Du borde inte göra det där. Skapa din egen användare och skapa valfritt objekt i detta schema.

I allmänhet finns det tre typer av partitionerade index:

  1. GLOBALT INDEX:Du har ett stort index som spänner över hela tabellen. Detta är obligatoriskt till exempel för UNIKA INDEX om de indexerade kolumnerna inte är en del av partitionsnyckeln. Ett sådant index är faktiskt inte uppdelat. (som visas i ALL_INDEXES )
  2. LOKALT INDEX:Detta index är uppdelat på samma sätt som den underliggande tabellen är. Varje tabellpartition har en motsvarande indexpartition.
  3. PARTITIONERAT INDEX:Detta index är partitionerat men annorlunda än den underliggande tabellen. Jag tror att det till och med är möjligt att skapa ett partitionerat index på en icke-partitionerad tabell. Partitionerade index är begränsade till mycket speciella användningsfall. Jag kan faktiskt inte föreställa mig var ett sådant index skulle vara vettigt.


  1. Kontrollera vilka användare som är online

  2. ap_proxy_connect_backend inaktiverar arbetare för (127.0.0.1)

  3. hur får man in rotförfäderna i en hierarkifråga med oracle-10g?

  4. Hur väljer man ett begränsat antal rader för varje främmande nyckel?