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ó:
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.