14 Ocak 2014 Salı
TRUCATE ve DELETE farkı
Birçok meraklı developer'ın, aralarındaki farkı en az bir kez sorguladığı bir mevzudur bu. DELETE FROM varken TRUNCATE nedir ki? Aralarındaki en büyük fark şu: DELETE bir DML (Data Manipulation : Veri İşleme) komutudur. DML komutları, "commit" edilmeden kabul görmeyip, rollback ile geri alınabilirler, haliyle rollback segmentlerini kullanırlar. TRUNCATE ise bir DDL (Data Definition : Veri Tanımlama) komutudur. DDL komutları commit veya rollback ile değiştirilemezler. İşin özüne gelirsek: Bir tablo düşünün, 10 milyon satır ve 150 sütundan oluşan bir devanası. Bu tabloyu boşaltmak isterseniz, ve bunu DELETE ile yaparsanız, tüm veri rollback segmentlere yazılır, ki bu performans ve hız açısından hiç de istemediğimiz sonuçları beraberinde getirir. Bu yüzden tablonun tamamının boşaltılması istenen durumlarda TRUNCATE'in kullanılması önemlidir.
Kaydol:
Kayıt Yorumları (Atom)
Hiç yorum yok:
Yorum Gönder