E-posta arşivleme için kullanılan bir SQL Server örneğimiz var (3. taraf arşivleme paketinin izniyle). Yazılım sık sık yeni bir boş veritabanına aktarılır. Bunu üç ayda bir yaptık, ama şimdi aylık olarak yapmak istiyoruz. Arşivlenen veri miktarı ayda yaklaşık 15-20 GB'dir ve verilerin büyük kısmı yalnızca birkaç tabloda bulunur (genellikle 2 - 4).
Yeni bir veritabanına döndüğümüzde, eskisi kesinlikle salt okunur olarak kullanılır. Ne yapmak istiyorum, tüm tablolar / dizinler bitişik ve çok yüksek bir doldurma faktörü ve veri dosyasının sonunda çok fazla boş alan ile güzel, sıkı bir veri dosyasına optimize etmektir. Ayrıca, bu sunucuda Standard Edition kullanıyoruz, ima edilen tüm sınırlamalarla (aksi halde veri sıkıştırmayı zaten kullanıyordum).
Düşünebileceğim birkaç olasılık:
- REBUILD / REORGANIZE dizinleri, DBCC SHRINKFILE (Tamam, bu mantıklı bir seçenek değil, çünkü DBCC SHRINKFILE dokunduğu her şeyi işemek parçalayacak, ama bütünlüğü dahil ediyorum.)
- Otomatik istatistikler kapalı olarak yeni bir veritabanı oluşturun. Kaynak veritabanındaki tüm tabloları kodlayın ve yeniden oluşturun. Verileri küme anahtarı sırasıyla yeni veritabanına vermek / almak için bcp komutunu kullanın. Tüm dizinleri kodlayın ve yeniden oluşturun. Tüm istatistikleri tam tarama ile yeniden hesaplayın.
- Otomatik istatistikler kapalı olarak yeni bir veritabanı oluşturun. Kaynak veritabanındaki tüm tabloları kodlayın ve yeniden oluşturun. Verileri yeni veritabanına aktarmak için SSIS veya T-SQL kullanın. Tüm dizinleri kodlayın ve yeniden oluşturun. Tüm istatistikleri tam tarama ile yeniden hesaplayın.
Her durumda son adım, veritabanını salt okunur moda ayarlamak olacaktır.
Bunu yapmak için başka hangi iyi / daha iyi seçenekler var? Endişem, verileri yüksek bir doldurma faktörünü koruyacak şekilde ve mantıksal olarak bitişik bir şekilde taşımaktır.
Düzenle:
Verilerin yaklaşık% 75'inin resim (LOB) sütunlarında depolandığını belirtmeliyim.
PRIMARY
?