Veritanımızdaki objeler zaman içerisinde tablo üzerinde sürekli olarak delete – insert – … işlemlerinin yapılmasından dolayı fragmantasyona uğrayıp aslında olması gereken size’ larından çok daha fazla yer işgal eder duruma gelebilirler. Bu tarz operasyonlarda bilinen en büyük yanlışlık tablodaki eski verileri belirli kritere göre silmeme rağmen neden bu tablo sürekli olarak büyüyor ? şeklindeki itirazlardır. Özellikle dba’ lerin zaman zaman tablolarda oluşan fragmantasyonları yazılımcılara bildirdiklerinde ve bunun için çözüm üretmeye çalıştıklarında sıklıkla aldıkları cevap ; biz tabloda zaten X günlük veri tutuyoruz neden büyüyor şeklinde oluyor şeklindeki dönüşlerdir. Delete işlemi tabloya yer kazandırmaz, oracle daki segment büyüme mantığı kullanılan blogun delete ile silinse dahi tekrar kullanılmadan bir sonraki blok üzerinden devam etme mantığına dayanır. (delete blok üzerindeki high water mark’ ı geri çekmez) Bu durumu bir örnekle açıklayıp tabloya orijinal size’ ını nasıl kazandırabileceğimizden bahsedelim.
Continue reading