Partition'ı TRUNCATE/DROP et ve global index'leri kullanılabilir tut
OraclePartitionKomut
-- Partition icerigini bosalt / partition'i kaldir (global index'ler bakimda kalir):
ALTER TABLE musteri_app.satis_part TRUNCATE PARTITION p2025 UPDATE INDEXES;
ALTER TABLE musteri_app.satis_part DROP PARTITION p2025 UPDATE INDEXES;
-- 12c+ asenkron global index bakimi: index VALID ama yetim kayit tasir
SELECT index_name, status, orphaned_entries
FROM dba_indexes
WHERE owner = 'MUSTERI_APP' AND table_name = 'SATIS_PART';
-- Yetim kayitlari hemen temizle (normalde SYS.PMO_DEFERRED_GIDX_MAINT_JOB gece yapar):
EXEC DBMS_PART.CLEANUP_GIDX(schema_name_in => 'MUSTERI_APP', table_name_in => 'SATIS_PART');
-- veya tek index: ALTER INDEX musteri_app.satis_part_id_gidx COALESCE CLEANUP;
-- Partition'i adiyla degil degeriyle hedefle:
-- ALTER TABLE musteri_app.satis_part DROP PARTITION FOR (DATE '2025-06-15') UPDATE INDEXES;Ne yapar?
Eski verinin satır satır DELETE yerine partition düzeyinde anında silinmesini sağlar. 12c+ ile UPDATE INDEXES, global index'leri tek tek güncellemek yerine yalnız sözlükte işaretler (asenkron bakım); index anında kullanılabilir kalır, yetim kayıtlar sonra temizlenir.
Ne zaman kullanılır?
Veri saklama politikası (retention) gereği eski dönemleri atarken, ILM/purge işlerinde, büyük tabloda DELETE'in yarattığı undo/redo yükünden kaçınmak için.
Dikkat
Partitioning opsiyonu (EE ek lisans) gerekir. DROP/TRUNCATE geri alınamaz (flashback table partition'ı geri getirmez); önce yedek veya exchange ile arşiv al. UPDATE INDEXES unutulursa global index'ler UNUSABLE olur ve sorgular ORA-01502 alabilir. Referans veren child tablolar varsa (FK) işlem hata verir. Interval tablolarda son range (transition) partition'ı düşürülemez.