2013-01-22 22 views
10

vs Tablo veya Görüntüleme yükü ne okudum Gönderen:SSIS - OLE DB Hedef - Hızlı yük

Tablo veya Görüntüleme veri erişim modu işlem olarak bir defada her satır taahhüt. Böylece 5 milyon satırlık bir paketin aktarılması uzun sürüyor (30+ dakika). Hızlı yük veri erişim modu, hedefe eklenirken toplu iş satırlarını ve işlem boyutunun belirlenmesini sağlar. Örneğin, 5 milyon kayıt eklemek sadece 2 dakika sürecektir.

Şimdi, DW'ye yüklenen SSIS paketlerinden birinin OLE DB hedefinde Tablo veya Görünüm veri erişim modunu kullandığı sorusu ortaya çıkıyor. Anlayışımdan, bu, eklediği hata satırlarını (hata kısıtlaması) bir hata kayıtları tablosuna almaktır. Böylece, 30 dakikadan fazla süren bir işlemimiz var. Sırasıyla, Hızlı Yükleme aynı eylem için 2 dakikadan daha az sürecektir.

Doğru bir şekilde anlıyorsam, hızlı yükleme hangi satırın toplu işteki hataya neden olduğunu ayırt edemez ve bu da toplu iş hacmini tamamen ortadan kaldırır? Öyleyse, hata sırasına sahip olan kümenin hata kısıtlaması tarafından yeniden yönlendirildiği ve daha sonra, toplu işteki iyi kayıtların doğru hedefe gönderilirken, hedefe doğru gönderildiği bu durumda alternatif bir yöntem var mı? hata kayıt tablosuna kayıt? Bunu yapmak bile iyi bir fikir mi? Mermi türünü konuşmak için gereken süreyi kısaltmak daha mı iyidir?

Önceden teşekkür ederiz.

cevap

11

Bu durumda yaptığım, basamaklı bir başarısızlık yaklaşımıdır. Tekli insertleri başlatmadan önce toplu modda denemek ve almak için ardı ardına daha küçük gruplar halinde OLE DB Hedefine girmeyi deneyin.

Bir taahhüt boyutunun 10k satır olduğunu varsayalım (isteğe bağlı sayı, durumunuz için sınama, vb.). Hatalı satırları, hala Hızlı Yükleme modunda ancak 2.5k satırlık bir işlem boyutuyla bir OLE DB Hedefine yönlendirin. Başka bir ole db hedefi ekleyebilir, belki de 100'lük bir tamamlama büyüklüğüne sahip ve daha sonra RBAR modunda olan son bir hedefe sahip olacaksınız. Ardından, başarısız satırları tanımlayabilir ve bunlarla ne yapılması gerektiğine karar verebilirsiniz.

+0

Neden X satırlarının bir taahhüdü yapmadığınızı merak ediyorum ve eğer bir hata varsa, bileşeni bozmayın, sadece hata satırlarını doğrudan düz dosyaya yeniden yönlendirin? - El.HAM'ın cevabına bakın. – codeputer

+0

@ codeputer Bileşeni bozmuyorum. Aynı cevaba sahibiz, sadece farklı terimler. Buradaki fikir, büyük (verimli) bir boyutta işlem yapmayı ve daha sonra da küçük parçalara geçmeyi denemenizdir. Başarısız partilerin ayrılmasının sebebi, orada hala iyi satırlar bulunması ve onları atmak istememenizdir. Nihai olarak satırları (düz dosya, tablo vb.) Yönlendirdiğiniz yerde, ETL – billinkc

+0

'un mimarisine dayanarak iyi satırları anlarım, ancak başarısız olan satırlar yeniden yönlendirildiyse, toplu işlem yeniden yönlendirilen satırlar olmadan başarılı olmaz ? – codeputer

2

Eh, Fastload modunda bir hedef kullandım ve hata satırlarını aynı DestinationTable için başka bir Hedefe, ancak Satır sıralamasına göre yeniden yönlendirdim.

Satır Satır kadar yavaş değildi ve Fastload kadar hızlı değil ama benim için çalıştı!
Ayrıca bir Hata Açıklaması ve gerçek hatalar var.

İlgili konular