Çok büyük ve paritition lu tabloalrı truncate etmek uzun zaman alabiliyor. Hele birde subpartition varsa bu sürede daha fazla uzayabiliyor. Bu Sorunu aşmanın bir yolu mümkün. öncelik ile yapmanız gereken tablonun scriptini almak. tablo scripti derken tablo yaratmada kullanılan kodlar. Bu kodlarda tablo hakkında bütün bilgiler bulunuyor. Daha sonrasında tablomuzu Drop ediyoruz.
drop table tabllo_adi;
şeklinde arkasında yedeğini aldiğimiz scripti tekrar çalıştırarak tabloyu oluşturuyoruz. Alın size truncate edilmiş tablo. Çok çakalca bir yöntem :D
Daha ayrıntılı bilgi için
büyük boyutlu tabloalrı nasıl bulabiliriz? sorusunun cevabı ise
SELECT * FROM DBA_SEGMENTS WHERE OWNER='OE' AND TABLESPACE_NAME='EXAMPLE' AND SEGMENT_TYPE ='TABLE' AND BYTES > TO_NUMBER('100.000.000','999,999,999')
bu sorgu ile database'de bulunan büyük tablolar tespit edilir.Sadece bunun ile kalmaz user bazında arama yapar. USER'ın sahip olduğu tablolar içerisinden belirlediğimiz tablespacedeki tabloları listeler. Bunu nerede kullanabiliriz sorusuna en kısa cevap tablespacede yer kalmadığında büyük boyutlu tabloları tespit ederek bunun sebebini araştırmak ve durumu değerlendirmek. Bunların bu kadar büyük olamsına gerek var mı? Burada segment_type='TABLO' dedim tablo yerine aşağıdakiler de gelebilir.
SEGMENT_TYPE
------------------
LOBINDEX
INDEX PARTITION
TABLE PARTITION
NESTED TABLE
ROLLBACK
LOB PARTITION
LOBSEGMENT
INDEX
TABLE
CLUSTER
TYPE2 UNDO
No comments:
Post a Comment