EXCHANGE PARTITION Olayını basit bir örnek ile açıklamaya çalıştım.
BEGIN
drop table TEMP_TABLE_EXCH ;
--SWAP'lamak çiin kullacağim geçici tabloyu oncelik ile drop ediyorum. Eğer var ise önce drop ederek sonra yeniden partition'lı olarak yaratacağım.
create table TEMP_TABLE_EXCH PARTITION BY HASH (TEL_NO) PARTITIONS 16 COMPRESS NOCACHE
--temp tablomu burada yaratıyorum. yalnız şöyle bir durum var. temp tablomda sadece bir tane partition olacak. Bunun amacı taşıma işlemi için.
--source tablonun ilgili partition'unu buraya aktarıyorum.
AS
select * from KAYNAK_TABLOM partition(PART_20080602) aa
where status='N';
-- yarattiğim tabloya bakacak olursaniz burada yine source tablonun ilgili partition'undaki status'ü N olanları olıyorum.
--bu yöntem ile partitiondaki delete işleminden kurtulmuş olacağim. sistemi cok fazla yormayacağim.( Veri Ambarları için konuşuyorum.)
ALTER TABLE KAYNAK_TABLOM --> source table , kaynak tablom hedef tablom oldu
--seçmiş olduğum status'ü N olan kayıtlardan oluşan partition'u Kaynak tabloya ekleme işlemini yapıyorum.
EXCHANGE PARTITION PART_20080602 --> DEGISECEK OLAN PARTTION
WITH TABLE TEMP_TABLE_EXCH --> TMP TABLE SOURCE TABLE
WITHOUT VALIDATION;
--ekrana da yapılan işlemi bildiriyorum.
commit;
DBMS_OUTPUT.put_line ('degisti 0> PART_20080602 ');
END;
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment