Partition'ı online böl (SPLIT) ve birleştir (MERGE)
OraclePartitionKomut
-- SPLIT: bir range partition'i ikiye bol, indeksler kullanilabilir kalsin
ALTER TABLE musteri_app.satis_part
SPLIT PARTITION p2026_h2 AT (DATE '2026-10-01')
INTO (PARTITION p2026_q3, PARTITION p2026_q4)
UPDATE INDEXES ONLINE;
-- MERGE: iki komsu partition'i birlestir
ALTER TABLE musteri_app.satis_part
MERGE PARTITIONS p2026_q3, p2026_q4 INTO PARTITION p2026_h2
UPDATE INDEXES ONLINE;
-- ADD: en sona yeni partition (MAXVALUE yoksa)
ALTER TABLE musteri_app.satis_part
ADD PARTITION p2027 VALUES LESS THAN (DATE '2028-01-01');
-- Kontrol: partition sinirlari ve UNUSABLE index partition'lari
SELECT partition_name, partition_position, high_value, num_rows
FROM dba_tab_partitions
WHERE table_owner = 'MUSTERI_APP' AND table_name = 'SATIS_PART'
ORDER BY partition_position;
SELECT index_name, partition_name, status
FROM dba_ind_partitions
WHERE index_owner = 'MUSTERI_APP' AND status <> 'USABLE';Ne yapar?
SPLIT bir partition'ı sınır değerinden ikiye (12c+ birden çoğa) ayırır; MERGE komşu partition'ları birleştirir. ONLINE ile işlem sırasında DML devam eder, UPDATE INDEXES ile local ve global index'ler UNUSABLE olmaz.
Ne zaman kullanılır?
MAXVALUE/"diğer" partition'ı büyüdüğünde bölmek, eski küçük partition'ları arşiv öncesi birleştirmek, partition stratejisini (aylık → çeyreklik) değiştirmek için.
Dikkat
Partitioning opsiyonu (EE ek lisans) gerekir; ONLINE için Enterprise Edition gerekir. SPLIT/MERGE veriyi fiziksel olarak yeniden yazar: büyük partition'da uzun sürer, redo/undo ve geçici alan üretir. ONLINE olmadan işlem süresince tablo DML'e kilitlenir; UPDATE INDEXES olmadan global index'ler UNUSABLE olur. Boş partition'ı bölmek hızlıdır (fast split).