Am baza de date Oracle 12c și tabel partiționat. Există o partiție veche care are 68734 MB, ceea ce reprezintă 27% din total.

Trebuie să renunț la această partiție. Aceasta este o bază de date de producție și nu am o fereastră de nefuncționare pentru aceasta.

Vreau să știu dacă renunț la această partiție, indexurile acestui tabel vor fi inutilizabile sau reconstruite? Care ar fi cea mai bună strategie pentru a renunța la această partiție cu impact minim asupra traficului live?

Comentarii

  • Depinde de indexuri. Indexii globali vor trebui să fie reconstruiți.

Răspuns

Când renunțați la una sau mai multe partiții, indexurile locale sunt a scăzut, de asemenea. Trebuie să reconstruiți indicii globali, cu excepția cazului în care clauza UPDATE INDEXES sau UPDATE GLOBAL INDEXES este specificată în ALTER TABLE DROP PARTITION declarație.

De exemplu, am un tabel numit TBL1 cu partiție de interval și indici globali.

SQL> select p.index_name, p.partition_name,p.status from dba_ind_partitions p, dba_indexes i where i.index_name=p.index_name and table_name="TBL1"; INDEX_NAME PARTITION_ STATUS ---------- ---------- -------- T_INDEX GI3 USABLE T_INDEX GI2 USABLE T_INDEX GI1 USABLE SQL> alter table tbl1 drop partition p0 UPDATE GLOBAL INDEXES; Table altered. SQL> select p.index_name, p.partition_name,p.status from dba_ind_partitions p, dba_indexes i where i.index_name=p.index_name and table_name="TBL1"; INDEX_NAME PARTITION_ STATUS ---------- ---------- -------- T_INDEX GI3 USABLE T_INDEX GI2 USABLE T_INDEX GI1 USABLE 

După cum puteți vedea, dacă specific clauza UPDATE GLOBAL INDEXES, indicii globali nu devin inutilizabili.

După eliminarea partiției, intrările indexurilor aparțin la acele partiții rămân. Când o interogare folosește acești indici, acestea ignoră pur și simplu astfel de intrări (orfane). Puteți curăța astfel de intrări orfane în fereastra dvs. obișnuită de întreținere. Detaliile sunt date și în documentațiile următoare. = „7f9aeaca1a”>

Operațiunile de întreținere a partiției DROP PARTITION și TRUNCATE PARTITION sunt optimizate făcând întreținerea indexului doar pentru metadate.

În orice caz, scăderea sau trunchierea unei partiții se completează imediat, indexul este întotdeauna av disponibil pentru utilizare, iar menținerea indexului este amânată

Documentație:

  • Întreținere asincronă a indexului global pentru scindarea și trunchierea partițiilor
  • Pe baza de date Oracle 12c

    Comentarii

    • Aceasta este o informație foarte utilă. Aveți idee despre durata de timp a acestei operații, având în vedere că această partiție are cea mai mare cantitate de date? Va dura câteva ore sau scăderea partiției se întâmplă timp rezonabil? (cu în secunde sau minute)
    • Conform ultimei propoziții citate mai sus, scăderea efectivă a unei partiții este o operație de metadate, deci va implica doar actualizări la o mână de înregistrări. Practic va fi rapid.
  • Lasă un răspuns

    Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *