2011-07-05 26 views
9

TRUNCATE'un en az günlüğe kaydedilen bir işlem olduğunu ve DROP kayıt silme işlemlerini silerken her kaydın silinmesini kaydetmediğini anlıyorum.Yükü günlüğe kaydetmekten kaçınmak için TABLO DÜZENLE TABLOSU YAPMALIYOR MI?

Yani, varsaymak güvenli olduğunu ben göreceli olarak büyük bir masanın kurtulmak istiyorum ve bu kadar HIZLA gerçekleşmesi ve mümkün olduğunca KÜÇÜK günlüğü yükü yapayım TRUNCATE TABLE Ben DROP TABLE önce birlikte istersek? Bunu RECOVERY SIMPLE'da yapmak fark yaratıyor mu?

Bunun, otomatik olarak (önceden yazılan komut dosyaları içinde) gerçekleşmesi gerektiğine dikkat etmeliyim, çünkü bu, hem kapalı kalma süresi hem de günlük dosyası büyümesinin bir sorun olabileceği istemci veritabanlarına dağıtılacaktır.

+0

Belleğim, kurtarma ayarının "SIMPLE" olması durumunda endişe vermesidir. –

+0

Bu, SIMPLE kurtarma modeli kullanıldığında DROP TABLE öğesinin minimal olarak kaydedildiği anlamına mı geliyor? Bununla ilgili kesin bir cevap görmedim. –

+2

Aynı işlem içinde olduğunuz sürece, bir DROP'u da SIMPLE kurtarma modunda bile geri alabilirsiniz. SQL Server'da pek çok "minimum düzeyde oturum açmış" işlem yoktur. –

cevap

10

TRUNCATE tek tek satırları günlüğe kaydetmez, sayfa/kapsam için günlüğe kaydeder. Bu yüzden bir kesmeyi (çok fazla insanın bilmediği) geri alabilirsiniz. Benim tahminimce, eğer sadece kırpıyorsanız, bırakın kendi başına bir düşüşten daha yavaş olacaktır. Eğer arasında işlem yaparsanız, belki de değil, ama aynı zamanda bir denetim noktasına, vb. Vurduğunuzda günlük etkinliğine, kurtarma modeline de bağlı olacaktır.

Hız neden burada önemli? Düşmek üzeresiniz, kullanıcılar tabloyu kullanıyor gibi değil ...

Neden sınmıyorsunuz? Birisi bu farklı değişkenleri kapsayan kapsamlı bir çalışma yürütmedikçe, yarı eğitimli tahminlerden çok daha fazlasını alacağınızdan şüpheleniyorum.

+0

Hızın bir faktör olmasının nedeni, bunun bir üretim veritabanına yükseltme işleminin bir parçası olması ve aksama süresinin en düşük düzeyde tutulması gerekmesidir. Dürüstçe, günlük dosyalarının büyümesi büyük olasılıkla bir sorundur. –

+0

TRUNCATE'in geri dönüşümlü olduğunu bilmiyor muydunuz ... –

+1

Yükseltme işleminden sonra neden tabloyu düşürmeyin? Yükseltme tamamlanmadan önce GONE olması gerektiği gibi değil, sadece tablonun farklı bir sürümü ile değiştirilmesi gerekiyor (varsayalım). Bunu farklı bir şemaya aktarmayı veya yeniden adlandırmayı söylerdim, sonra kullanıcılar beklemediğinde daha sonra bırakabilirsiniz. –

2

Tecrübemde, özellikle büyük veri kümeleri için, düşüş, düşüşten çok daha hızlıdır.

İlgili konular