Bölümlenmiş tablolara 2 TB'lık bir veritabanının canlı geçişini planlama sürecim. Sistem genel olarak bir belge deposu konuşuyor, alanın çoğunluğu 500kb ila 1MB aralığında küçük bir yüzdeyle 50kb ile 500kb arasındaki LOB'lara tahsis ediliyor. Geçişin bir kısmı eski veritabanından yeni veritabanına BCPing verilerini içerecektir.
BCP, verilerdeki mevcut / tarihi bölünmenin, son bir anahtardan önce (sessiz dönemlerde) eski verilerin aşamalı olarak çıkarılmasına izin vererek canlı sistem üzerindeki etkiyi en aza indirdiği için tercih edilen yaklaşımdır. Veri hacmi ve depolama kullanılabilirliği, bir bölüm şemasına yerinde yeniden oluşturmayı engeller .
BLOB içeriği nedeniyle ROWS_PER_BATCH yerine KILOBYTES_PER_BATCH ile deneme yaparak bazı performans kazanımlarının olabileceğinden şüpheleniyorum. BCP belgelerinde SQL'in bu değere dayalı işlemleri optimize edebileceği ileri sürülmektedir .
Bulamadığım şey, bu optimizasyonların niteliği veya testime nereden başlayacağım konusunda herhangi bir rehberlik. Önerilerin yokluğunda başlamak için 4/8/16/32 / 64mb sınırlarında kısa koşuları deneyeceğim.
Muhtemelen bazı kazançlar paket boyutunu (BCP -a parametresi, sunucu düzeyi ayarı yerine) değiştirmekten gelebilir, ancak daha formülik bir yaklaşıma sahip olmadıkça bunu maksimum 65535'e çarpma eğilimindeyim.