Düşmeden önce her zaman büyük bir tabloyu kesmemiz gerektiği söylenir, performansı artırır. Bu doğru mu?Bırakmadan önce büyük bir tabloyu kesmemiz gerekiyor mu?
cevap
Bir şeyler yanlış giderse geri dönmek isteyip istemediğinize bağlı olarak değişir. Veri silme işlemi, siz değişiklik yapana kadar veritabanının işlem günlüklerine karşı silme işlemini siler.
Kesilme, bu günlükleri kaydetmeden tablodaki tüm verileri siler, böylece bunu yaparken önemli bir performans artışı olabilir. Geri dönüş yolu olmadığından, ne yaptığınızı bildiğinizden emin olun. Yüksek su işaretini sıfırlamak iyi bir fikir olabilir.
'Bırak tablosu 'günlükleri kaydetmiyor, değil mi? OP, "silme" hakkında hiçbir şey söylemedi. – skaffman
İyi nokta. Kesenin kendisinin performansından bahsettiği varsayımı yaptım. Artık bana alay etmeye ve evime taş atmaya devam edebilirsiniz. :) – Jason
drop table, kayıtları kaydedebilir - örneğin "flashback", yapılandırılmış/etkinleştirilmişse, düşürülmüş bir tabloyu geri yükleyebilir. – rogerdpack
iyi, gerçekten değil - masa düştüğünde * * HWM yok. –
IMO genelde bir tabloyu düşürmek isterseniz DROP
uygundur. Bu alan TRUNCATE
ile aynı şekilde serbest bırakılacak ve atomik olma avantajına sahip olacaktır (hiçbir sorgu "boş" tablosunu görme fırsatına sahip olmayacaktır).
10g + 'dan itibaren, bir düşürülmüş tablo hemen silinmeyecektir: yeterli alan varsa recycle bin içine konacaktır. Önce bir tabloyu kırpırsanız, geri dönüşüm kutusuna hiç veri kalmaz. Bu yüzden ilk önce (?) Kesilmesi söylendi olabilir.
Her durumda, geri dönüşüm kutusunu atlamak isterseniz DROP TABLE your_table PURGE
numarasını verebilirsiniz ve bu ifade atomik olacaktır.
- 1. SqlDataAdpater.Update() kullanmadan önce SqlCommandBuilder.GetUpdateCommand() çağrılması gerekiyor mu?
- 2. Bırakmadan önce tablo varlığını kontrol edin?
- 3. GIT: Şubemi başka bir şubeye gitmeden önce işlemem gerekiyor mu?
- 4. Dart paketimi kullanmadan önce pub.dartlang.org adresine yayınlamam gerekiyor mu?
- 5. StreamWriter.flush() yapmam gerekiyor mu?
- 6. Ps-script'imi daha önce boş bırakmadan nasıl imzalayabilirim?
- 7. LaTeX içinde boşluk bırakmadan önce bölüm \ 'de \/bölüm \\\}
- 8. Tabloyu bırakmadan ve yeniden oluşturmadan, oracle'de belirli bir konumda bir sütun nasıl eklenir?
- 9. ClickOnce manifes'imi imzalamam gerekiyor mu?
- 10. .dmg dosyalarının imzalanması gerekiyor mu?
- 11. android - call_phone izni gerekiyor mu?
- 12. Grails'e "render" yapmam gerekiyor mu?
- 13. * .xcuserstate'ı kontrol etmemiz gerekiyor mu?
- 14. Node.js'de path.join kullanmanız gerekiyor mu?
- 15. Program Çıkışında Nesne Serbest Bırakılması Gerekiyor mu?
- 16. DOS'ta boşluk bırakmadan yankı kullanımı
- 17. Fazladan boşluk bırakmadan DMG oluşturma
- 18. Yeni klasör içeren bir yolla writeToFile çağırmadan önce Belgeler'de alt klasörler oluşturmamız gerekiyor mu?
- 19. QTextEdit çok mu büyük?
- 20. django URL'ler bir iz bırakmadan, yeniden yönlendirmiyor
- 21. Alanı boş bırakmadan bir dize ayırma?
- 22. bir MVC Eyleminin bir actionResult döndürmesi gerekiyor mu?
- 23. Komutların CQRS'de asenkron olması gerekiyor mu?
- 24. Tabloyu
- 25. Capistrano'nun Gemfile'daki geliştirme grubunda olması gerekiyor mu?
- 26. VCS'de R.java dosyasını kontrol etmeniz gerekiyor mu?
- 27. Köşeli 2/Rxjs: Abonelikten çıkmam gerekiyor mu?
- 28. MongoCollection.forEach'in iş parçacığı güvenli olması gerekiyor mu?
- 29. Python'da getLogger'ı aramadan önce __name__ == "__main__" için açıkça kontrol etmem gerekiyor mu?
- 30. File.getName() dosyasını gerçekleştirdiğim dosyaları kapatmam gerekiyor mu?
"Kimin söylediği" deniliyor? – skaffman
"performansı artırır" - Hangi yolla? Tüm veritabanının performansını mı kastediyorsunuz, yoksa bu tablonun silinmesi daha hızlı mı gidecek? – darioo
Ayrıca bkz. Http://dba.stackexchange.com/questions/4163/why-use-both-truncate-and-drop – rogerdpack