Rendelkezem Oracle 12c adatbázissal és particionált táblával. Van egy régi partíció, amelynek 68734 MB a teljes 27% -a.

Le kell dobnom ezt a partíciót. Ez egy termelési adatbázis, és erre nincs leállási ablakom.

Szeretném tudni, hogy eldobom-e ezt a partíciót, a tábla indexei használhatatlanok vagy újjáépülnek-e? Mi lenne a legjobb stratégia ennek a partíciónak az eldobására, minimális hatással az élő forgalomra?

Megjegyzések

  • Az indexektől függ. A globális indexeket újra kell építeni.

Válasz

Amikor egy vagy több partíciót eldob, a helyi indexek is leesett. Újra kell építeni a globális indexeket, hacsak a ALTER TABLE DROP PARTITION UPDATE INDEXES vagy UPDATE GLOBAL INDEXES záradék nincs megadva. utasítás.

Például van egy TBL1 nevű táblám, tartomány-partícióval és globális indexekkel.

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 

Amint láthatja, ha megadom a UPDATE GLOBAL INDEXES záradékot, a globális indexek nem válnak használhatatlanná.

A partíció eldobása után az indexek bejegyzései hozzátartoznak Ha egy lekérdezés ezeket az indexeket használja, akkor egyszerűen figyelmen kívül hagyja az ilyen (árva) bejegyzéseket. Az ilyen árva bejegyzéseket megtisztíthatja a szokásos karbantartási ablakban. A részleteket a következő dokumentációk is tartalmazzák.

A DROP PARTITION és a TRUNCATE PARTITION partíciókarbantartási műveleteket úgy optimalizálják, hogy csak a metaadatok index karbantartását végzik.

Mindenesetre a partíció leesése vagy csonkolása. azonnal teljes, az index mindig av használható, és az index karbantartása elhalasztásra kerül

Dokumentáció:

  • Aszinkron globális index karbantartás partíciók eldobásához és csonkításához
  • Az Oracle Database 12c rendszerről

    Megjegyzések

    • Ez nagyon hasznos információ. Van elképzelése a művelet időtartamáról, mivel ebben a partícióban van a legtöbb adat? Több órát vesz igénybe, vagy a partíció leesése ésszerű időn belül megtörténik? (másodpercek vagy percek alatt)
    • A fent idézett utolsó mondat szerint a partíció tényleges elejtése metaadat-művelet, így csak néhány rekord frissítésével jár. Alapvetően gyors lesz.
  • Vélemény, hozzászólás?

    Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük