Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi

0
Oracle veritabanında DELETE ve TRUNCATE komutlarının farkı nedir?

Açık 1 Cevaplar 63 Gösterim Veri Tabanı
Veritabanı üzerindeki bir tabloda DELETE komutu çalıştırmakla TRUNCATE çalıştırmak arasında nasıl bir fark vardır? Diskte tutulan yer anlamında nasıl bir sonuç ortaya çıkıyor?

1 cevap

1

Truncate'te HWM(High Water Mark) yani bir nevi tabloda en son kaydın tutulduğu yeri tutan değer sıfıra çekilir. Böylece tablodaki verinin tuttuğu alan da db'ye iade edilebilir. Delete işlemi yaptığımızda ise HWM değeri aynı kalır. (Tablonun kapladığı alan değişmez.) Yani sadece delete yaparak veritabanında yer açamayız. Delete işleminden sonra  alter table tablo_adi move; diyerek boşalan alanı kullanılabilir hale getiririz.(Bu satırların rowid değerleri değişir. Buna dikkat etmek gerekir.)

Ayrıca, truncate işlemi roll back yapılamaz. Milyon satırlık tabloyu truncate ederken, execute demeden önce patronun sizi bulamayacağı bir yere bilet almayı ihmal etmeyin. :)

Delete işlemi roll back yapılabilir.

(284 puan)